我公司通过对问题及答案在去#1后有点糊涂WakefulIntentService
。 我只是想获得一些知识对这个主题,以确保我的理解是正确的,请随时纠正我,如果我错了。
我建了一个小的应用程序,在这里我使用的是后台Service
是继续播放音乐,每当用户摇动移动。 我测试的设备锁定和屏幕关闭时,它按预期工作后。
我所听到来自这个论坛 ,该服务可能会尽快关闭设备进入睡眠。 真的吗? 就我而言,它的作品始终,我缺少的东西?
什么是需要WakeFulIntentService
? 我们什么时候需要使用WakefulIntentService
?
我想在一个运行的计时器Service
,但该设备被锁定,屏幕关闭,我的定时器运行几乎我可以肯定地说。 因为我用得到通知,每当我的定时器人次。
我是从这个论坛上听到,该服务可能会尽快关闭设备进入睡眠。 真的吗?
是。
在我的情况下,它的工作原理总是
然后,你的设备上的其他东西入睡保持装置。 也许使用adb shell dumpsys power
,看看有什么WakeLocks
都很优秀。
什么是WakeFulIntent服务的需求? 我们什么时候需要使用WakefulIntentService?
如果用户是不活动的,并没有什么不锁定设备屏幕的设备可以入睡。 甲WakeLock
被用来确保所述设备保持苏醒。 对于事务型的工作(例如,下载的文件), WakefulIntentService
结合了IntentService
和WakeLock
,使保持清醒的设备,只要有必要(和只只要需要)相对容易。
WakefulIntentService
不适合与需要无限期地运行,如音乐播放器服务使用。 针对这一情况,管理自己的WakeLock
。
我用在应用下面的代码。
确保您的服务已被置顶:
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
//this service will run until we stop it
return START_STICKY;
}
我想要您的手机保持清醒不断ü可以使用下面的代码:
private WakeLock wl;
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "whatever");
wl.acquire();
别忘了在你的清单上的权限。
<uses-permission android:name="android.permission.WAKE_LOCK" />