我有一个非常简单的警报管理器,可以在设备清醒时执行操作。所以我认为AlarmManager.RTC
是我最好的方法。根据{{3}},设备应该忽略下一个发生的警报,直到设备唤醒,然后它会发送其待处理的意图指令。
以下是我安排闹钟的代码:
Intent intent = new Intent(getApplicationContext(), WorkerService.class);
PendingIntent pIntent = PendingIntent.getService(getApplicationContext(), 0, intent, 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC, System.currentTimeMillis(), 10000, pIntent);
这是“WorkerService.class”中的代码
public void onCreate() {
super.onCreate();
stopSelf();
}
public void onDestroy() {
super.onDestroy();
Log.i("Service Status", "Service exited");
}
我在这里做错了什么?
现在我知道我可以写一个屏幕接收器,但是当屏幕关闭时,当警报管理器应该忽略我的警报时,我必须打开另一个服务来保持接收器(有点烦人)。
我使用Log.i
通知我该服务是否已运行。我能够通过使用ADB Over WiFi来告诉eclipse的logcat输出是什么,这样设备就可以睡觉了。
谢谢你们,我真的很难过。