0

我有一个应用程序,它在我的应用程序类中保存一些对象以供全球使用。我不希望 Application 类被杀死(因为我需要保存在其中的信息),所以我重写了该onLowMemory()函数以创建一个Thread.sleep(1000)

如果内存仍然很低,当 Application 类唤醒时会发生什么?会再次调用 onLowMemory() 吗?

只要我的应用程序及其后台服务正在运行,确保这个 Application 类不会被系统杀死的正确架构是什么?

4

2 回答 2

2

不要那样做!

  1. 不要阻塞系统调用
  2. 这不会阻止系统杀死您的应用程序
  3. 内存仍然很低

没有办法确保您的应用程序不会被杀死。将您的数据保存在共享首选项、文件或 sqlite 数据库中,以适合您的需要,但不要依赖应用程序实例。

于 2012-09-24T15:37:39.840 回答
0

您不应该相信该函数被调用。Android 可以随时杀死你的应用程序,只要它在后台,你不能真正阻止他甚至尝试。它可能会调用该函数,以便您的应用程序可以清除一些缓存或执行它可以做的任何事情来释放一些内存。这可以从文档中得出结论。

http://developer.android.com/reference/android/app/Application.html#onLowMemory ()

尽量避免依赖它。尽你所能准备你的应用程序以打开或类似的方法OnPause,这些方法肯定会被调用。这意味着保存变量、数据或对文件或数据库很重要的任何其他内容。OnStoponDestroy

于 2012-09-24T15:41:06.927 回答