我想在我的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,因此您可以坚持单活动 –