我有3個activites,他們是:一個,主要和乙。removeExtra(密鑰)的活動意圖將導致不能添加它再次
A和B都可以啓動並切換到主要,反之亦然,但我只想當主要知道它是由一個開始,然後做某事,所以我把意圖額外只有一個當它開始主要:
/*In Activity A*/
Intent intent = new Intent(A_Activity.this, Main_Activity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra("myKey", true);
startActivity(intent);
一次主要得到值,開始做某事,一切都很好:
/*in MainActivity*/
@Override
protected void onResume() {
super.onResume();
boolean shouldDo = getIntent().getBooleanExtra("myKey", false);
if (shouldDo) {
// do sth
}
}
問題是myKey
在intent
似乎依然存在,所以從現在開始,連路線是從乙到主要,上面的代碼也將主要執行的,所以我把remove extra
主,喜歡吞myKey
:
/*in Main_Activity*/
@Override
protected void onResume() {
super.onResume();
boolean shouldDo = getIntent().getBooleanExtra("myKey", false);
if (shouldDo) {
getIntent().removeExtra("myKey");
// do sth
}
}
那麼,這裏是當我做這種情況下,問題:切換從主至A,以及c我回來了。那麼主將永遠不會檢測到myKey
了,這裏有什麼問題?
你能檢查MainActivity.onNewIntent()是否被調用嗎?我認爲可能是這樣的,每次MainActivity啓動時(在第一個之後),來自'A'或'B'的'Intent'在這裏被傳送。 https://developer.android.com/reference/android/app/Activity.html#onNewIntent(android.content.Intent) –
是的,我可以看到我的EMPTY'onNewIntent(Intent intent)'在'onResume (......)',不太明白正規醫生說的,是否解釋了我的情況? – Shawn