从Android开始不同的任务

时间:2011-03-17 14:21:48

标签: java android android-activity stack

我的应用可以从两种不同的环境中打开:

(1)从主屏幕 (2)从标题栏中的通知。

如果应用程序是从通知中打开的,它会启动活动B,并且当用户完成此活动时,我想关闭应用程序。我不想要它如果先前从上下文(1)打开了应用程序,则返回活动堆栈中的另一个活动。

例如,如果我从主屏幕打开应用程序,然后按home,然后从标题栏中的通知打开应用程序,当我完成活动B时,它会将我带回主要活动应用程序。我不希望它这样做。

当我从通知中打开活动时,我真的希望能够重新启动活动堆栈。

我尝试添加标记

FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP

但这似乎没有帮助。或者,我也尝试在我的应用程序中的活动中设置noHistory =“true”,但如果用户从上下文(1)打开应用程序,则此真的不能正常工作。

有什么想法吗?当您从不同的上下文中打开应用程序时,是否有任何方法可以启动活动堆栈?

2 个答案:

答案 0 :(得分:0)

当用户在此活动内部时,您可以从ActivityA的finish()方法调用onStop()并按下主页按钮,活动将完成,不再在堆栈中。然后,当他们从通知栏打开ActivityB并完成它时,它们将被带回主屏幕(或者如果他们在通知栏中打开你的内容时会发生其他活动)。

答案 1 :(得分:0)

在AndroidManifest中,您应该为活动B添加android:clearTaskOnLaunch="true"。这意味着它将在每次启动时为活动B启动新任务。