Tim*_*Tim 8 android alarmmanager android-wake-lock
Android的AlarmManager Javadoc说明
When an alarm goes off, the Intent that had been registered for it is broadcast by the system,
AlarmServiceAndroid提供的API演示中有一个(包com.example.android.apis.app),它演示了正在使用的AlarmService.
在其中我们有以下内容(为清晰起见编辑):
PendingIntent mAlarmSender = PendingIntent.getService(AlarmService.this,
0, new Intent(AlarmService.this, AlarmService_Service.class), 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 30*1000, mAlarmSender);
Run Code Online (Sandbox Code Playgroud)
因此,在这个例子中,它不会执行,PendingIntent mAlarmSender = PendingIntent.getBroadcast(...);而是执行getServiceJavadoc从未提及的内容.
我问这个的原因是因为CPU唤醒锁的影响.Javadoc表示,一旦广播接收器onReceive()返回,AlarmManger的唤醒锁将被释放.
我想知道的是,如果您使用示例中的警报,唤醒锁定的含义是什么?Javadoc似乎没有解决这个问题.如果有什么似乎暗示你必须在设置警报时使用广播技术.
我想知道的是,如果您使用示例中的警报,唤醒锁定的含义是什么?
无法保证您的服务在设备进入睡眠状态之前就能获得控制权.
如果有什么似乎暗示你必须在设置警报时使用广播技术.
对于_WAKEUP警报,是的,因为这是我们保证在设备仍处于唤醒状态时获得控制的唯一途径.
由于_WAKEUP警报要完成的工作通常超出了您可以安全地进行onReceive()清单注册的范围BroadcastReceiver,因此常见的模式是将工作委托给IntentService.为此,我已打包WakefulIntentService,实现模式,以便安全地将控制权传递给IntentService并保持设备唤醒足够长的时间,以便服务完成其工作.
| 归档时间: |
|
| 查看次数: |
3182 次 |
| 最近记录: |