Android应用被"杀死"后会发生什么

use*_*499 6 android

我有一个启用了实时推送通知的应用程序.所以我的查询是当任何用户试图使用"高级任务杀手" 杀死我的应用程序时,我的应用程序进入未定义状态.

未定义状态:我的意思是我的应用程序没有完全终止.屏幕的数据处于不一致状态.

因此,只要应用程序被杀,我就可以让用户登录屏幕.这样用户就不会看到任何未定义的状态.

还想知道我的应用程序状态在被杀之后会发生什么,以便我可以解决问题.

帮助感谢.

hac*_*bod 4

这取决于平台的版本。在 2.2 之前,像 ATK 这样的第三方应用程序可以使用与管理应用程序中的“强制停止”按钮执行相同操作的 API - 这会杀死所有应用程序进程,删除所有任务/活动,取消注册所有警报,删除所有通知,停止所有服务等。基本上使应用程序不像第一次安装时那样运行,除了其持久数据仍然完好无损。

不用说,这往往会导致应用程序出现错误行为,因此从 2.2 开始,其他应用程序(例如 ATK)无法再对您的应用程序执行此操作。他们使用的 API 现在只能做与内存不足杀手相同的事情——杀死应用程序进程,但前提是它们在后台处于可杀死状态。它不能再做更多的事的内存不足杀手,因此从 2.2 开始,如果您的应用程序由于使用了像 ATK 这样的应用程序而出现行为异常,那么这将暴露应用程序中用户在正常使用中会遇到的实际错误他们的设备。