我有一个由startService启动并与BIND_AutoCreate绑定的服务,我希望我的服务在android为低内存杀死时自动运行,我该如何植入?
感谢
答案 0 :(得分:0)
您必须为ACTION_DEVICE_STORAGE_OK
注册广播接收器,这表示设备上的内存不足情况已不再存在。在onReceive()
方法中检查您的服务是否已停止,请启动它。
当设备从低内存状态(内部存储器)恢复时,将广播DEVICE_STORAGE_OK
操作。我认为这是一个完美的事件,您可以检查您的服务是否在系统内存恢复期间被杀死,并在被杀死时启动它。
答案 1 :(得分:0)
如果服务是由于 BIND_AUTO_CREATE 绑定而创建的,那么如果它没有绑定任何活动,它将被停止。
根据文档(service lifecycle),您既可以显式启动服务,也可以在启用自动创建标志的情况下绑定。
如果您将服务显式启动为STICKY(在其* onStartCommand *方法中返回START_STICKY,只要系统有更多资源,它就会自动重新启动。