我正在编写一个具有两种“模式”的应用程序;一种查看模式和一种编辑模式。该应用程序公开了两个主要/启动器活动(例如,A和D),它们又具有自己的活动链(分别为B、C和E、F)。两个入口点活动A和D将在主屏幕中显示两个带有单独标签的图标,并且这两个链永远不会交叉,即一旦您在具有活动A的视图模式下启动应用程序,您可以来回走动的唯一路线是A , B , C如果您在编辑模式下使用活动D启动应用程序,则唯一可用的活动链是D、E、F。
现在,我的问题是,如果以例如查看模式(活动链A、B、C)启动应用程序并从该链中的任何活动中按下 Home 按钮,我将返回主屏幕(当然)但如果我那时在编辑模式下重新启动应用程序(活动链D、E、F)我进入按下 Home 按钮时正在进行的活动(即错误链中的活动) - 不是编辑模式的预期入口点; 活动D。 _
我该如何解决这个问题?
我已经为所涉及的活动尝试了android:noHistory
,android:clearTaskOnLaunch
和其他属性的各种组合。AndroidManifest.xml
但它们似乎只影响活动本身,而不是整个链条。
我想在按下 Home 按钮时从历史堆栈中删除整个活动链(A、B、C或D、E、F),但在我仍在链中时仍保持堆栈完整(我想要能够从活动B中按下后退按钮并进入活动A)。