如何在不调用startActivity()或finishAffinity()

时间:2016-07-20 11:33:37

标签: android android-activity stack clear

我有四个活动打开A,B,C,D(“A”活动不是我的启动器活动),应用程序处于后台(即按下主页按钮)。

现在根据收到的一些GCM消息,我需要完成所有活动或清除任务。因此,下次用户打开应用程序时,全新的活动“E”将打开。

因此,1>我不能用CLEAR_TASK标志做startActivity

也不是2> finishAffinity()因为我没有活动参考。

3>有一个使用BroadcastReceiver并手动完成活动的解决方案,但在一些低配置的移动设备中,这个解决方案给出了问题。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

当您处理通知时,您可以通过执行以下操作来终止该应用

<强> android.os.Process.killProcess(android.os.Process.myPid())

四个组件 - 活动,服务,内容提供商,广播接收器在一个进程下在单独的线程中运行。因此,当您要请求myPid()时,它将提供与您的活动相同的进程ID!

我希望这能解决你的问题!