我有以下应用程序结构


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也基于视图寻呼机构建)

08-04 09:49