Android的
AlarmManager Javadoc声明
当闹钟响起时,系统会广播已注册的Intent,
Android提供的API演示中有一个AlarmService(包com.example.android.apis.app),它演示了正在使用的AlarmService.
在其中我们有以下内容(为清晰起见编辑):
PendingIntent mAlarmSender = PendingIntent.getService(AlarmService.this,new Intent(AlarmService.this,AlarmService_Service.class),0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,firstTime,30*1000,mAlarmSender);
所以在这个例子中它没有PendingIntent mAlarmSender = PendingIntent.getBroadcast(…);相反,它会执行Javadoc永远不会提到的getService.
我问这个的原因是因为cpu唤醒锁的影响. Javadoc表示,一旦广播接收器的onReceive()返回,AlarmManger的唤醒锁将被释放.
我想知道如果您使用示例中的警报,唤醒锁定的含义是什么? Javadoc似乎没有解决这个问题.如果有什么似乎暗示您在设置警报时必须使用广播技术.