我的應用需要每天在特定時間從網絡抓取一些數據。所以我使用AlarmManager來安排任務,並且工作正常。我應該在AlarmManager中使用PendingIntent.getService()還是getBroadcast?
但是,當看到各種例子時,當涉及待定意圖時,似乎有兩種方法可以處理AlarmManager。
一旦使用PendingIntent.getBroadcast()
在警報關閉時調用廣播接收器,並在該接收器內啓動真正的工作服務。
另一種方法是使用PendingIntent.getService()
並在警報關閉時直接調用該服務。
有人可以向我解釋兩種方法之間的差異,所以我可以決定哪一個依靠?
編輯:另一個問題是在使用getService()時,在哪裏獲取喚醒鎖?
例如,使用廣播接收器,當我在的onReceive()以下行:
WakeReminderIntentService.acquireStaticLock(context);
我應該如何獲取喚醒鎖,如果我不是直接調用服務,如:
PendingIntent pi = PendingIntent.getService(this, 0, new Intent(this, OnAlarmReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT);
我應該直接從服務內取得嗎?
這其實並不重要。您可以使用IntentService或Service,或者本地或全局廣播。你應該可以在他們所有人都這樣做。 –