0
我知道有很多關於處理Up導航的問題,但他們都不滿足我。上導航,正確的方式處理
我有3個活動:MainActivity,BookActivity,BookChaptersActivity。 BookActivity會接收一些額外內容以正確初始化。我使用這個建議的方式來瀏覽:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
Intent upIntent = NavUtils.getParentActivityIntent(this);
if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
// This activity is NOT part of this app's task, so create a new task
// when navigating up, with a synthesized back stack.
TaskStackBuilder.create(this)
// Add all of this activity's parents to the back stack
.addNextIntentWithParentStack(upIntent)
// Navigate up to the closest parent
.startActivities();
} else {
// This activity is part of this app's task, so simply
// navigate up to the logical parent activity.
NavUtils.navigateUpTo(this, upIntent);
}
return true;
}
return super.onOptionsItemSelected(item);
}
但是使用最多的導航裏面BookChapterActivity的時候,我又回到了BookActivity,但它被重新演員沒有,所以它是完整的混亂。 我知道推薦的方法來解決這個問題是通過使用: android:launchMode =「singleTop」 裏面的清單。但是我不認爲這是處理這個問題的正確方法。如果我想擁有多個BookActivity實例會怎麼樣?
所以我問你:這種情況應該怎麼處理好?
謝謝,但是如果完成BookChapterActivity而未事先完成BookActivity並以意向啓動它呢?這種方法有什麼缺點嗎? – connexion20000
是的,你會在你的堆棧中進行這項活動,這意味着如果你想以正確的方式離開你的應用(按下後退或導航按鈕),你必須兩次瀏覽這個活動 – Milchkanne