我打算使用IntentService进行一些处理。该服务从清单中注册的广播接收器开始。该服务必须更新数据库,因此操作可能很长(甚至一分钟)。对于cpu,我可以使用唤醒锁,但关于操作系统?
答案 0 :(得分:1)
当IntentSerivice
延伸Service
时,没有什么可以阻止您致电startForeground()
。你必须显示一个实际的通知(曾经有一个黑客在没有通知的情况下启用了前台服务,但幸运的是它已在4.3中修复)。
IntentService
的默认行为是START_NOT_STICKY
。您可以通过在构造函数中或其他位置调用setIntentRedelivery(true)
来更改它。
ReentrantReadWrite
是一个java级锁,而不是文件/ db / OS级锁。这意味着一旦进程停止,锁就会消失。 (你确实说过“数据库锁定”,但我认为这只是不准确的措辞 - 你不会以某种方式锁定数据库,不是吗?)。