我有一个应用程序,它在我的Application类中保存了一些对象以供全局使用。
我不希望Application类被杀死(因为我需要保存在其中的信息),所以我覆盖了onLowMemory()
函数来制作Thread.sleep(1000)
如果内存仍然很低,Application类会唤醒会发生什么?会再次调用onLowMemory()吗?
只要我的应用程序及其后台服务正在运行,确保此Application类不会被系统杀死的正确架构是什么?
答案 0 :(得分:2)
不要那样做!
无法确保您的应用不会被杀死。将数据保存在共享首选项,文件或sqlite数据库中,以满足您的需求为准,但不依赖于应用程序实例。
答案 1 :(得分:0)
你不应该相信这个函数被调用。 Android可以随时杀死你的应用程序,只要它在后台,你就不能真正阻止他甚至尝试。它可以调用该函数,以便您的应用程序可以清除某些缓存或执行任何可以释放一些内存的操作。这可以从文档中得出结论。
http://developer.android.com/reference/android/app/Application.html#onLowMemory()
尽量避免依赖它。尽你所能准备你的应用程序,以便切换OnPause
,OnStop
或onDestroy
或类似的方法,这些方法肯定会被调用。这意味着保存变量,数据或对文件或数据库很重要的任何其他内容。