我想在我的Android應用上實現良好的向上導航。實現向上導航
例如,我想從DetailsActivity
去MasterActivity
。要做到這一點我使用下面的代碼:
final Intent upIntent = new Intent(this, MasterActivity.class);
upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
supportNavigateUpTo(upIntent);
它的偉大工程,如果MasterActivity
已經在後臺打開:它關閉當前活動(在堆棧上MasterActivity
所有活動),並觸發方法onNewIntent
上MasterActivity
。
但是,如果MasterActivity
不在堆棧中,則該方法只會簡單地關閉DetailsActivity
並且不會發生任何其他情況。
我想實現的是,如果MasterActivity
不在堆棧中,則當前的aActivity會關閉,並會創建一個新的MasterActivity
實例。
我已經嘗試過,沒有成功,下面的標誌組合:
Intent.FLAG_ACTIVITY_SINGLE_TOP
Intent.FLAG_ACTIVITY_CLEAR_TOP
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
你有沒有在如何解決我的問題的任何想法?
非常感謝您的時間
編輯
父活動需要在運行時指定。實際上,父活動可以是ActivityA
,ActivityB
或ActivityC
。
讓我更好地解釋這個問題。我的應用管理電視節目。我有一個MainActivty
,一個TVShowActivity
,一個SeasonActivity
和一個EpisodeActivity
。
在從每一個活動我希望能夠跳轉到父活動抽屜式導航欄:
-On EpisodeActivity
我想去SeasonActivity
,TVShowActivity
或MainActivity
;
-On SeasonActivity
我想去TVShowActivity
或MainActivity
;
- - TVShowActivity
我想去MainActivity
。
我的應用程序目前工作,如果我的活動堆棧是這樣的:MainActivty
=>TVShowActivity
=>SeasonActivity
=>EpisodeActivity
。
問題是,有時用戶可以直接從MainActivity
到達EpisodeActivity
,我希望能夠使用相同的導航模式。
http://stackoverflow.com/a/12276100/3322203 試試這個我認爲你需要看看那個解決方案。 完美的例子。 –
請參閱我的編輯:我需要在運行時指定父活動 – Spotlight
使用Fragments,因此您可以堅持單活動 –