从启动器图标启动现有的singleTask Activity

时间:2013-08-08 16:48:35

标签: android android-intent

情景:

  • 单击启动器图标时,活动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.什么给了!

1 个答案:

答案 0 :(得分:0)

参见类似的情景here

在您的情况下,我建议您使用类似的方法,在这种方法中,您将拥有一个SharedPreference,该值会保留一个值,表示您的应用之前是否已启动。

创建一个简单的Activity,其中包含您在此处尝试执行的操作的逻辑。在该活动的(“pre-A”活动)onResume()方法中,检查表示应用程序之前是否已运行的首选项的值。

如果之前没有运行,请向活动A发起一个意图,该活动调用后续的B和C活动;否则,启动活动C的意图。

看起来非常简单,只需记住在清单中定义新的“Pre-A”活动!