我一直在關注谷歌的教程一個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