我有以下应用程序结构
MainFragmentActivity
通知片段
主片段
聊天片段
依此类推
我还为所有“活动”设置了广播,如果收到任何“推送”通知,都会显示一个弹出窗口。
弹出窗口有两个选项,“查看”或“确定”。
现在,假设我在ChatFragment上,从那里转到“聊天联系人列表”(活动),然后在ChatScreen(Activity)上,然后在User的ProfileScreen(Activity)上
活动堆栈会像
MainFragmentActvity -> ChatContactsList -> ChatScreen -> ProfileScreen
我想要的是,当我在ProfileScreen上单击“查看”时,它应该删除所有堆栈活动,并返回MainFragmentActivity,并用NotificationFragment替换其当前片段。
我可以做
finishAffinity()
重新启动应用程序,然后将MainFragment放进去,但是我想支持16-APIS。Flag Clear Top
将删除MainActivity,并且我不想重新启动它,因为它必须调用很多api我不想放
NO History FLAG
,因为我需要将所有其他活动放到历史记录中。我在这里能做什么。
我也不想放
startActivityForResult
这将是如此复杂。任何想法,将不胜感激
最佳答案
从您的解释中我了解到,您想创建类似方案的向导来控制运行时的活动流。 (向导表示,例如,Microsoft Windows上应用程序的安装窗口(向导))
为此,Nimrod Dayan已经开发了一个库,
称为WizarDroid。
这是相同的WizarDroid主页的链接
试试吧,它很好。
要么
您可以使用视图寻呼机(WizarDroid也基于视图寻呼机构建)