【发布时间】:2016-02-12 14:05:09
【问题描述】:
我们有一个很难重现的应用问题。用例如下:
- 用户打开应用
- 用户在后台离开应用程序
- 用户打开了 5 到 7 个应用程序
- 系统杀死了我们的应用程序
- 当用户尝试恢复应用时,应用由于
NullPointerException而崩溃
我试图通过Application 类方法onTrimMemory() 和onLowMemory() 使用控制台日志,但没有调用此方法。有没有什么方法或回调我可以听知道什么时候android系统会因为打开更多的应用程序而杀死我的应用程序,在这种情况下让我做点什么?
【问题讨论】:
-
尝试在活动代码中覆盖这些方法,而不是应用程序的代码
-
您是否在清单中正确声明了您的 Appliction 类?
-
据我所知,这是不可能的直接方式(我很高兴被反驳,因为我也曾寻找过这种方式)。以一种间接的方式,您可以实现某种保活信号。使用它来使您的应用程序看起来仍然需要(因此其他空闲的后台应用程序将在您的应用程序之前被杀死)或检查上次保持活动信号的时间戳以查看应用程序在达到此检查之前已经死机(导致重新创建所有必要的部分)。
-
看起来不错,但从我刚刚阅读的内容来看,这可能无法解决您的问题。也许这会给你一个答案stackoverflow.com/questions/21040339/…
-
"要保存有关活动状态的其他数据,您必须重写 onSaveInstanceState()" 来源:developer.android.com/training/basics/activity-lifecycle/…
标签: android android-activity android-service android-memory