【问题标题】:how to get notified when the system kills my app to free memory?当系统杀死我的应用程序以释放内存时如何获得通知?
【发布时间】:2018-06-12 10:04:07
【问题描述】:

我正在构建一个应用程序来处理一些数据。当该过程完成时,它会显示一个通知。如果我在完成该过程后(同时执行一些繁重的任务)一段时间后单击通知,它会崩溃。这是由于android清理了应用程序使用的内存。当android force关闭应用程序时,是否有任何回调方法/方式来获得通知?

【问题讨论】:

  • 无法知道应用程序何时被终止。当它被置于后台时,会调用“onPause”和“onStop”。这是您需要保存数据的时候。如果您在应用程序处于后台时执行一些调用,您应该使用服务。但在任何情况下,您都需要确保在用户通过单击通知打开应用程序时存储应用程序使用的必要数据

标签: android android-activity memory-management


【解决方案1】:

public void onLowMemory ()

当整个系统内存不足时调用,并且 积极运行的进程应该减少它们的内存使用。虽然 没有定义调用 this 的确切点,通常它 当所有后台进程都被杀死时会发生。那是, 在达到终止进程托管服务和 我们希望避免杀死的前台 UI。

你应该实现这个方法来释放任何缓存或其他 您可能持有的不必要的资源。该系统将 从此方法返回后为您执行垃圾回收。

最好实现 ComponentCallbacks2.onTrimMemory(int) 从 ComponentCallbacks2 以增量方式卸载您的资源 不同级别的内存需求。该 API 可用于 API 14 级及以上,所以你应该只使用这个 onLowMemory() 方法 作为旧版本的后备,可以被视为相同 ComponentCallbacks2.onTrimMemory(int) 与 ComponentCallbacks2.TRIM_MEMORY_COMPLETE 级别。

这里是文档:

https://developer.android.com/reference/android/app/Activity.html#onLowMemory()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多