保持Android Service在手机休眠后继续运行的方法
最近项目中用到了service进行计时,在连接USB的情况下一切正常,但是拔掉USB后发现,手机进入休眠后service停止了工作。最后通过PowerManager.WakeLock在屏幕休眠后保持cpu唤醒状态以使得service继续运行。
官网提醒:这个API会加剧耗电,所以在非必要情况下尽量不要使用。如果要使用尽量使用最低的等级,并在退出后释放资源。
wakelock一共有四个等级:
FlagValue |
---|
PARTIAL_WAKE_LOCK |
SCREEN_DIM_WAKE_LOCK |
SCREEN_BRIGHT_WAKE_LOCK |
FULL_WAKE_LOCK |
因为项目中只需要保持cpu唤醒即可,所以使用PARTIAL_WAKE_LOCK即可。
在service中使用方式如下:
... privatePowerManager.WakeLockwakeLock=null; ... @Override publicvoidonCreate(){ super.onCreate(); PowerManagerpm=(PowerManager)getSystemService(Context.POWER_SERVICE); wakeLock=pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,TimerService.class.getName()); wakeLock.acquire(); } ... @Override publicvoidonDestroy(){ if(wakeLock!=null){ wakeLock.release(); wakeLock=null; } super.onDestroy(); }
以上这篇保持AndroidService在手机休眠后继续运行的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。