这是一个我无法找到解决方案的问题:
我的应用会创建一个虚假的位置对象。每次用户关闭应用程序时都需要销毁它。如果不是,它将保持完整,直到整个手机重新启动。
现在,我可以在OnDestroy()方法中放置一个DestroyLocationObject()函数,但在某些情况下,永远不会调用OnDestroy。即使用户完全完成了应用程序。
但是,总是调用OnStop。 但问题是,OnStop将被调用,即使用户不想完全关闭应用程序,只是将其放入后台,然后可能稍后返回。
如何确保在应用关闭时销毁我构建的位置对象。无论怎么关闭?
答案 0 :(得分:0)
是否可以销毁onStop()方法中的对象并在onRestart()中创建一个新对象
答案 1 :(得分:0)
通常,要做的就是在onStart
中创建对象并在onStop
上销毁它。
这样,即使他们将应用程序放在后台,也会在他们回来时重新创建。
您想要这样做的问题是,如果Android内存不足,系统会破坏您的应用程序或删除内存对象。不要以为当他们来的时候,你的对象会是一样的。
另一个想法是,如果每次都需要相同的位置对象,请创建对象Serializable
并保存,以便下次可以检索它。
答案 2 :(得分:0)
未调用onDestroy()
的唯一情况是用户强行关闭您的应用,或者框架杀死您的应用以释放内存。当这些事情发生时,整个VM都会被破坏。因此,除非您持有系统资源(文件,套接字等),否则没有什么可以清理的。
答案 3 :(得分:0)
当用户按下主页按钮时调用onPause。你应该把你的方法(DestroyLocationObject())放在onPause中。