软件编程
位置:首页>> 软件编程>> Android编程>> 保持Android Service在手机休眠后继续运行的方法

保持Android Service在手机休眠后继续运行的方法

作者:陌小二  发布时间:2022-01-01 20:36:12 

标签:Android,Service,手机,休眠

最近项目中用到了service进行计时,在连接USB的情况下一切正常,但是拔掉USB后发现,手机进入休眠后service停止了工作。最后通过 PowerManager.WakeLock 在屏幕休眠后保持cpu唤醒状态以使得service继续运行。

官网提醒:这个API会加剧耗电,所以在非必要情况下尽量不要使用。如果要使用尽量使用最低的等级,并在退出后释放资源。

wake lock一共有四个等级:

Flag ValueCPUScreenKeyboard
PARTIAL_WAKE_LOCKOn*OffOff
SCREEN_DIM_WAKE_LOCKOnDimOff
SCREEN_BRIGHT_WAKE_LOCKOnBrightOff
FULL_WAKE_LOCKOnBrightBright

因为项目中只需要保持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();
}

来源:https://blog.csdn.net/u013078044/article/details/64123663

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com