0

我试过这个wakefull示例:https ://github.com/commonsguy/cw-omnibus/tree/master/AlarmManager/Wakeful

但我有几个问题。

我需要<action android:name="android.intent.action.BOOT_COMPLETED" />吗?因为正如我测试的那样,意图始终为空。

而 inScheduledService 是:

@Override
    protected void doWakefulWork(Intent intent) {
        Log.d(getClass().getSimpleName(), "I ran!");
    }

但是这种方法永远不会被解雇。

在 WakefulintentService 中有这个方法,它也永远不会被触发:

 @Override
    final protected void onHandleIntent(Intent intent) {
        try {
            doWakefulWork(intent);
        } finally {
            PowerManager.WakeLock lock = getLock(this.getApplicationContext());

            if (lock.isHeld()) {
                lock.release();
            }
        }
    }

要改变什么,以便我得到I ran输出?

4

1 回答 1

1

我需要 ?

仅当您希望在重新启动后再次设置警报时。默认情况下,设备重启时会清除警报。

但这种方法永远不会被解雇。

是的。您可以通过运行项目来判断这一点。

在 WakefulintentService 中是这个方法,它也永远不会被触发:

是的。您可以通过运行项目来判断这一点。

例如,这是我刚刚执行的运行的输出:

12-11 14:03:05.671: D/ScheduledService(3322): I ran!
12-11 14:03:10.671: D/ScheduledService(3322): I ran!
12-11 14:03:15.671: D/ScheduledService(3322): I ran!
12-11 14:03:20.671: D/ScheduledService(3322): I ran!
于 2012-12-11T19:03:42.193 回答