我的应用可以从两种不同的环境中打开:
(1)从主屏幕 (2)从标题栏中的通知。
如果应用程序是从通知中打开的,它会启动活动B,并且当用户完成此活动时,我想关闭应用程序。我不想要它如果先前从上下文(1)打开了应用程序,则返回活动堆栈中的另一个活动。
例如,如果我从主屏幕打开应用程序,然后按home,然后从标题栏中的通知打开应用程序,当我完成活动B时,它会将我带回主要活动应用程序。我不希望它这样做。
当我从通知中打开活动时,我真的希望能够重新启动活动堆栈。
我尝试添加标记
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
但这似乎没有帮助。或者,我也尝试在我的应用程序中的活动中设置noHistory =“true”,但如果用户从上下文(1)打开应用程序,则此真的不能正常工作。
有什么想法吗?当您从不同的上下文中打开应用程序时,是否有任何方法可以启动活动堆栈?
答案 0 :(得分:0)
当用户在此活动内部时,您可以从ActivityA的finish()
方法调用onStop()
并按下主页按钮,活动将完成,不再在堆栈中。然后,当他们从通知栏打开ActivityB并完成它时,它们将被带回主屏幕(或者如果他们在通知栏中打开你的内容时会发生其他活动)。
答案 1 :(得分:0)
在AndroidManifest中,您应该为活动B添加android:clearTaskOnLaunch="true"
。这意味着它将在每次启动时为活动B启动新任务。