保持Android Service在手机休眠后继续运行的方法
时间:2020-11-21 15:16:49|栏目:Android代码|点击: 次
最近项目中用到了service进行计时,在连接USB的情况下一切正常,但是拔掉USB后发现,手机进入休眠后service停止了工作。最后通过 PowerManager.WakeLock 在屏幕休眠后保持cpu唤醒状态以使得service继续运行。
官网提醒:这个API会加剧耗电,所以在非必要情况下尽量不要使用。如果要使用尽量使用最低的等级,并在退出后释放资源。
wake lock一共有四个等级:
Flag Value | CPU | Screen | Keyboard |
---|---|---|---|
PARTIAL_WAKE_LOCK | On* | Off | Off |
SCREEN_DIM_WAKE_LOCK | On | Dim | Off |
SCREEN_BRIGHT_WAKE_LOCK | On | Bright | Off |
FULL_WAKE_LOCK | On | Bright | Bright |
因为项目中只需要保持cpu唤醒即可,所以使用 PARTIAL_WAKE_LOCK 即可。
在service中使用方式如下:
... private PowerManager.WakeLock wakeLock = null; ... @Override public void onCreate() { super.onCreate(); PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TimerService.class.getName()); wakeLock.acquire(); } ... @Override public void onDestroy() { if (wakeLock != null) { wakeLock.release(); wakeLock = null; } super.onDestroy(); }
上一篇:深入探讨Unit Testing in Android
栏 目:Android代码
本文标题:保持Android Service在手机休眠后继续运行的方法
本文地址:http://www.codeinn.net/misctech/24944.html