当前位置: 首页 > 知识库问答 >
问题:

使用强制停止时未调用Android-Service-ondestory()方法

赵健柏
2023-03-14

当我使用Running Services选项卡下的stop按钮停止服务时,将调用onDestroy()方法

但是当我强制停止应用程序时,onDestroy()永远不会被调用。

对此有何解释?

或者是一个解决方案,当强制停止时触发onDestroy()?

谢谢

共有3个答案

戚令秋
2023-03-14

当应用程序强制停止时,进程将停止。调用了killProcess(),但没有调用onDestroy()函数。通过这个链接。你会知道的。Android强制停止回调应用程序?

许高峻
2023-03-14

从留档:

创建活动后,onPause()是保证在终止进程之前调用的最后一个方法<可能无法调用code>onStop()和onDestroy()。因此,您应该使用onPause()将关键的持久数据(如用户编辑)写入存储器。

重申这一点,强制停止并不意味着优雅,也不意味着以关心的方式退出应用程序。如果每次应用程序完成时都必须运行关键代码,则需要在onPause()中运行它。

谭兴学
2023-03-14

当你强制停止一个应用程序时,确实会发生这种情况——这就是强制停止。没有警告,没有回调,只是停止了。整个进程将被终止,并且运行的组件(活动、服务等)都不会收到任何警告。

绝对不能保证调用onDestroy()。将任何应用程序关键代码移动到onPause(),这在大多数情况下都会被调用

 类似资料:
  • 如果按照步骤设置强制停止应用程序-

  • 我目前正在使用weblogic,问题是我在我的weblogic服务器上部署了几个应用程序。不幸的是,当这个应用程序中的一个由于X/Y原因而无法部署时,我只想强制停止这个应用程序并传递给另一个。 我已经查看了WLST文档,但没有找到我要搜索的内容。以下是我使用的函数: 停止应用程序(applicationName,gracefulProductionToAdmin=“true”,gracefulIg

  • 当我从测试类调用functions方法时,我希望executeSol方法不要运行,因为它会导致错误。

  • 实际上,我有一个Spring Boot应用程序,我使用Kafka嵌入而不使用SpringKafka,而是使用合流库。 我配置了自定义拓扑,当我启动jUnit时,流仍然是监听的,Spring引导服务器不会结束。 我尝试使用@DirtiesContext,但问题仍然存在。 对于启动jUnit我使用 当消费者处于循环中时,我在控制台中看到以下消息: 无法建立到节点-1的连接。经纪人可能不可用。 提示?

  • 问题内容: 下面的代码在运行时显然会打印出“ B1 / A2 / B2”。现在,是否可以改为打印“ A1 / A2 / B2”(即A#method2()应该在A而不是B上调用method1())? 注意:我不需要获得传递多态性,这个问题仅出于好奇。 问题答案: 是的,您可以做到。在包 a中 定义A : 在包 b中 定义B : 将测试放入软件包 a中 并运行它。结果是A1 / A2 / B2。当然这