0

我有一个非常简单的警报管理器,可以在设备处于唤醒状态时执行操作。所以我认为这AlarmManager.RTC是我最好的方法。根据AlarmManager API,设备应该忽略下一个发生的警报,直到设备唤醒,然后它将发送其未决的意图指令。

这是我安排警报的代码:

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 中告诉输出是什么,这样设备就可以进入睡眠状态。

谢谢大家,我真的很难过。

4

0 回答 0