我正在開發一個用戶可登錄的Android應用程序。爲此,每項活動都將擴展爲BaseActivity
。在那裏,在onResume()
方法中,我檢查用戶是否已登錄,如果沒有,我通過調用startActivity()
來啓動我的LoginActivity
。我們稱之爲FailActivity
。startActivity()不立即調用?
當FailActivity
重新開始時,它的onResume()
被正確調用,然後調用super.onResume()
,我得到startActivity()
。但意圖從未被執行。而是BaseActivity.onResume()
將執行傳遞迴FailActivity.onResume()
。因爲用戶沒有登錄這將產生一個錯誤
這裏是BaseActivity
相關代碼:
@Override
protected void onResume()
{
super.onResume();
boolean wtf = false;
if (!loggedIn) {
Intent intent = new Intent(this, LoginActivity.class);
intent.putExtra(LoginActivity.EXTRA_NEXT_ACTIVITY, this.getClass().getName());
startActivity(intent);
wtf = true;
}
if (wtf)
Log.wtf("wtf", "this should not happen");
}
我已經打過電話finish()
之前和之後startActivity()
,並設置在各類旗幟意圖,沒有一個做我想要的。
如何強制執行登錄意圖?爲什麼startActivity()
似乎沒有效果,爲什麼只有這一項活動?
如果我打電話return''startActivity()'我回到'FailActivity.onresume()',這是不是有什麼我想要。基本上,有沒有辦法同時執行'startActivity()'? – modemuser 2014-09-27 21:01:22
否,沒有辦法執行活動異步。回調函數'onActivityResult()'用來處理返回的Activity或更好的Activity的結果。 – rekire 2014-09-27 21:05:41
如果我在'FailActivity'中的'super.onResume()'之後放置了'if(!loggedIn)return;',一切正常。謝謝! – modemuser 2014-09-27 21:07:43