每当我的活动结束时,我都试图执行一些代码,但是当活动被移到后台时,不是(因此,在onPause()中调用它并不是一个解决方案),而且我知道onDestory()不一定会被调用。我已经搜遍了,还没找到办法。我如何着手解决这个问题呢?有可能吗?
发布于 2014-05-27 19:28:09
没什么。当一个应用程序结束时,你永远不可能被调用,因为它总是会被不正常地终止--它可能会崩溃,电池可能被拔出来,等等。onDestroy是你能找到的最接近的。但是,您不应该编写需要在终止时间进行清理的程序。
发布于 2014-05-27 19:50:42
我不确定,但我怀疑你把一些问题混为一谈;
当我读到这个问题的时候,你有2到3个问题:
( 1)当应用程序退出时,您想知道发生了什么事情。
2)在onPause()期间,您有要维护的状态,但在onDestroy()之后没有状态。
3)您大概有一些不应该在应用程序使用之间持续存在的内容。
一些答案:
1)正如Gabe所指出的,没有人能保证任何事情都不会被称为。我可以把后背从设备上拿出来然后拔出电池。你的电话不会发生的。
2)在这种情况下,您可以尝试使用onDestroyView()。在许多情况下,onPause将不会调用它(例如,当显示警报对话框时),但在其他情况下(例如,当您用另一个片段替换片段时)将调用它。
3)这个问题使我认为你可能需要重新考虑你的存储/保存这些信息的方法。如果您不希望应用程序不在系统中存在,最好不要将数据写入文件系统。(应付1)。其他的选择是将它保存在记忆中。您也可以使用共享首选项/首选项机制,但在删除应用程序之前,这种机制仍然存在于文件系统中。
https://stackoverflow.com/questions/23897403
复制相似问题