我一直在关注谷歌的教程一个App Engine连接的Android项目,我被陷在this page。调用GoogleAccountCredential.newChooseAccountIntent后onActivityResult不叫()
具体在第8c节中,似乎有错误。如标题所述,onActivityResult方法在以下代码中未被调用。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Start up RegisterActivity right away
Intent intent = new Intent(this, RegisterActivity.class);
startActivity(intent);
credential = GoogleAccountCredential.usingAudience(this,"server:client_id:" + WEB_CLIENT_ID);
startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER);
System.out.println("onCreate finished");
//new EndpointsTask().execute(getApplicationContext());
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_ACCOUNT_PICKER:
if (data != null && data.getExtras() != null) {
accountName = data.getExtras().getString(AccountManager.KEY_ACCOUNT_NAME);
if (accountName != null) {
credential.setSelectedAccountName(accountName);
new EndpointsTask().execute(getApplicationContext());
}
}
break;
}
一切都进展顺利,直到这一点时,我注意到,没有被执行的AsyncTask并没有什么在GAE控制台数据存储结束。
是否有人知道这个问题,也许指向正确的方向?我已经在这几个小时,所有我能想到的是有一个与其他活动不设置“resultCode为”
任何帮助是极大的赞赏一个问题。
在我看来,这是为什么,因为你开始活动onResultActivity()方法不叫的原因之前,这是注册活动。我相信您需要将此方法凭证= GoogleAccountCredential.usingAudience(this,“server:client_id:”+ WEB_CLIENT_ID); startActivityForResult(credential.newChooseAccountIntent(),REQUEST_ACCOUNT_PICKER);在注册活动中,您使用startActivity(intent)启动它; – 2013-03-22 21:25:45
好吧,谢谢你们指出我在获得凭证之前已经开始了另一项活动。我现在已经对本教程有了洞见。我仍然遇到麻烦,但至少现在调用了onActivityResult方法。 – traw 2013-03-22 21:51:14
您不应该开始一个活动,然后继续在'onCreate'中添加更多代码。你必须想出另一种方式来做'startActivity(意图)' – 2013-03-22 21:51:37