Android 为什么AlarmManager.RTC正在唤醒我的设备?

Android 为什么AlarmManager.RTC正在唤醒我的设备?,android,alarmmanager,sleep,Android,Alarmmanager,Sleep,我有一个非常简单的报警管理器,可以在设备处于唤醒状态时执行操作。所以我认为AlarmManager.RTC是我最好的方法。根据协议,设备应忽略下一个发生的报警,直到设备唤醒,然后将发送其挂起的意图指令 以下是我安排报警的代码: Intent intent = new Intent(getApplicationContext(), WorkerService.class); PendingIntent pIntent = PendingIntent.getService(g

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

以下是我安排报警的代码:

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”中的代码

我做错了什么

现在我知道我可以写一个屏幕接收器,但是当alarm manager应该在屏幕关闭时忽略我的警报时,我必须打开另一个服务来保存接收器(有点烦人)

我使用
Log.I
通知我服务是否运行。通过使用ADB Over WiFi,我可以在eclipse的logcat中判断输出是什么,这样设备就可以睡眠了


谢谢大家,我真的很困惑。

你有什么证据表明你的闹钟正在唤醒设备,而设备已经唤醒或其他东西正在唤醒设备?你有没有试过不那么疯狂的投票周期,比如每15分钟一次?我试过30秒,结果都是一样的。先生,我试15分钟。我怎么知道你会回答?我很高兴你这么做,因为我从你身上学到了很多!你真是太棒了@commonware!公共软件是正确的。根据设备的配置和规格,您需要等待更长的时间。如果用户决定在一秒钟后打开Android,Android不会立即进入睡眠状态。感谢@VladimirLichonos,我确实将其设置为15分钟,让设备单独关闭屏幕半小时,它仍然会在15分钟的间隔内关闭。我可能只是添加了一个屏幕关闭的接收器。还有一些东西让设备保持清醒,比如通过WiFi的ADB。您可以使用adb shell dumpsys power查看是否有任何未完成的唤醒锁。
    public void onCreate() {
    super.onCreate();

    stopSelf();

}

public void onDestroy() {
    super.onDestroy();
    Log.i("Service Status", "Service exited");
}