6

我在我的应用程序中试验 ActivityManager.killBackgroundProcesses 并注意到一些有趣的事情。我希望stackoverflow上的人可以对此有所了解。

因此,如果我启动一个应用程序,例如 youtube,我首先会看到视频页面列表,然后单击菜单->设置,我会得到设置页面。现在,如果我单击主页按钮,这会将 youtube 置于后台。到目前为止,一切都很好。现在,如果我运行 ActivityManager.killBackgroundProcesses 来杀死 youtube 应用程序(或者我使用我相信使用相同 API 的高级任务杀手),当我再次启动 youtube 时,我会看到设置页面,而不是视频页面的默认列表。

但是,如果我不执行 ActivityManager.killBackgroundProcesses,而是转到系统设置->管理应用程序->Youtube->强制停止,当我再次启动 youtube 时,我会得到视频页面列表,而不是设置页面。

因此,ActivityManager.killBackgroundProcesses 似乎与强制停止不同,因为它仍然记得它在进入后台之前所在的最后一个任务/页面,而强制停止为您提供了一个新的开始。

有人对此有很好的解释吗?是否可以在我的代码中执行“强制停止”以重新启动应用程序?

非常感谢!

4

2 回答 2

1

好吧,我不确定如何使用它,因为我以前从未尝试过使用除我之外的应用程序,但也许它会有所帮助 - 考虑使用: android.os.Process.killProcess(android.os.Process.myPid());

关于您的问题,为什么系统可以停止而您不能。事实是,系统可以更多。更具体的是,当您按下强制停止按钮时,系统正在发送终止信号(信号 9)以使用给定的 pid 进行处理。

这就是为什么我认为上述函数应该有所帮助的原因,因为它发送几乎(如果不完全相同)信号。

希望它会有所帮助。

于 2012-01-09T20:18:53.013 回答
0

将您的应用程序录制到 Android 操作系统安全系统不能只是杀死另一个活动。您可以向系统发送请求,如果可能的话,它会为您完成所有必需的事情。

设置是系统应用程序,这就是它比您的应用程序具有更多访问权限的原因。

所以,看起来操作系统不允许你杀死应用程序。不确定,但请尝试检查您的应用权限 - 也许有解决方案。

于 2012-01-09T20:30:36.560 回答