情景:
单击启动器图标时,活动A(清单中的MAIN和LAUNCHER)启动。
反过来又启动了活动B.
活动B然后启动我们的主应用程序活动C(清单中的MAIN和singleTask)。
我需要的行为:
一旦显示了活动C,然后按下了主页键,下次按下启动器图标时,我想直接跳到活动C(并且不再显示活动A(以及B)。
我尝试过使用A中的FLAG_ACTIVITY_CLEAR_TOP,但每当我在启动画面上点击图标时,我仍会获得活动A.
我的singletask活动C出现在发射器上是否可以实现?
更新:使用A中的FLAG_ACTIVITY_CLEAR_TOP而不调用finish()会产生一种情况,即按下启动器图标时会显示活动B.但是,也应用B中的FLAG_ACTIVITY_CLEAR_TOP而不调用finish()不能解决问题。现在我没有得到A on launcher icon press,但得到B.什么给了!
答案 0 :(得分:0)
参见类似的情景here。
在您的情况下,我建议您使用类似的方法,在这种方法中,您将拥有一个SharedPreference,该值会保留一个值,表示您的应用之前是否已启动。
创建一个简单的Activity,其中包含您在此处尝试执行的操作的逻辑。在该活动的(“pre-A”活动)onResume()方法中,检查表示应用程序之前是否已运行的首选项的值。
如果之前没有运行,请向活动A发起一个意图,该活动调用后续的B和C活动;否则,启动活动C的意图。
看起来非常简单,只需记住在清单中定义新的“Pre-A”活动!