我正在我的应用程序中试验ActivityManager.killBackgroundProcesses并注意到一些有趣的东西。我希望stackoverflow上的某个人可以对此有所了解。
因此,如果我启动一个应用程序,例如youtube,我首先会看到视频页面列表,然后点击menu-> Settings,我将获得设置页面。现在,如果我单击主页按钮,这将把youtube放到后台。到现在为止还挺好。现在,如果我运行ActivityManager.killBackgroundProcesses来杀死youtube应用程序(或者我使用高级任务杀手,我相信使用相同的API),当我再次启动youtube时,我会看到设置页面,而不是默认的视频页面列表。
但是如果不是做ActivityManager.killBackgroundProcesses,我去系统设置 - >管理应用程序 - > Youtube->强制停止,当我再次启动youtube时,我得到视频页面列表,而不是设置页。
所以似乎ActivityManager.killBackgroundProcesses与强制停止不同,因为它仍然会记住在它被放到后台之前它所处的最后一个任务/页面,而强制停止会给你一个新的开始。
任何人都有很好的解释吗?在我的代码中是否可以通过“强制停止”来重新启动应用程序?
非常感谢!
答案 0 :(得分:1)
好吧,我不确定如何使用它,因为我以前从未尝试使用除我以外的应用程序,但可能会有所帮助 - 考虑使用:android.os.Process.killProcess(android.os.Process.myPid());
关于你的问题,为什么系统可以停止,你不能。事实是系统可以更多。更具特色,当您按下强制停止按钮系统时,发送终止信号(信号9)以使用给定的pid进行处理。
这就是为什么我认为上述功能应该有所帮助,因为它几乎发送信号,如果不是完全相同的话。
希望它会有所帮助。
答案 1 :(得分:0)
记录到Android操作系统安全系统,您的应用不能只是杀死其他活动。您可以向系统发送请求,然后它会为您执行所有必需的操作(如果可能的话)。
设置是系统应用程序,这就是为什么它具有比您的应用程序更多的访问权限。
所以,看起来操作系统不允许你杀死应用程序。不确定,但尝试检查你的app permisionns - 也许解决方案就在那里。