我的应用程序是在前台运行的后台服务。在内存不足的情况下,我的一些处理线程在没有重新启动应用程序的情况下被终止。这导致了非常奇怪的行为。当内存不足时,我希望在进程被终止之前操作系统发出警报。这将允许我释放内存或重新启动我的应用程序。我似乎找不到针对这种情况的广播或通知。
最佳答案
- Android 内部有一个持续运行的后台服务“DeviceStorageMonitorService”,它会定期检查系统存储目录。
- 此服务维护的内存阈值是分配的内部系统内存的 10%,因此在 P2 的情况下为 861MB,因此内存阈值为 86 MB。 我们可以通过更改文件 DeviceStorageMonitorService.java 内的宏 DEFAULT_THRESHOLD_PERCENTAGE 来更改此设置。
- 它检查可用内存的大小与内存阈值,如果小于阈值内存,它将广播通知并粘性广播 Intent ACTION_DEVICE_STORAGE_LOW。 如果内存已满 ACTION_DEVICE_STORAGE_FULL
在接收器中接收此广播 Intent 并处理应用程序。
关于android - Android 上如何确定设备内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9803813/