首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >卸载应用程序不会触发服务中的onDestroy

卸载应用程序不会触发服务中的onDestroy
EN

Stack Overflow用户
提问于 2014-11-07 07:23:30
回答 2查看 1.5K关注 0票数 2

我正在开发一个Android服务。当服务停止时,将按预期的方式调用onDestroy。然而,当我卸载应用程序,当服务运行时,onDestroy没有被调用,使应用程序没有机会清理自己。

这是正常的吗?当应用程序被卸载时,我如何为服务执行关闭/清理逻辑?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-07 08:28:24

您不能保证在所有情况下都会调用onDestroy

当Android应用程序被系统拦截时,应用程序就不会优雅地关闭。相反,直接关闭它正在运行的进程要简单得多--基本上是立即关闭Dalvik实例。这是一种优化,它是通过沙箱将不同的应用程序放置在它们自己的运行时实例中来实现的。

这就是为什么onDestroy不会被调用的原因--这个应用程序在它的轨道上停止运行。

此外,正如在Jim's good explanation中提到的,应用程序不能被告知他们自己的卸载。

票数 2
EN

Stack Overflow用户

发布于 2014-11-07 08:14:46

Android特别不允许在卸载时通知应用程序(想想恶意应用程序会做什么-重新安装,用弹出窗口发送垃圾邮件等等)。

如果你关心的是“清理”,然后把你的所有文件保存在你的私人应用空间(即不要使用SD卡)。否则,您必须期望用户进行清理。

没有其他选择。

请参阅有关卸载的相关文章:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26796117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档