[英]Alarm Manager and BroadCastReceiver not firing
我的Activity
類之一在onCreate
包含以下代碼。 當我進入該活動時,我期望每秒輸出一次日志,但是什么也沒有發生。
private void setupAlarm() {
AlarmManager alarmManager = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this,AdhIntent.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this,
0, intent, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000, pendingIntent);
}
private class AdhIntent extends BroadcastReceiver {
public AdhIntent() {
System.out.println("2014");
}
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("2014");
}
}
首先, AdhIntent
需要成為public
類。 否則,Android無法創建它的實例。
其次, AdhIntent
需要在清單中的<receiver>
元素中注冊。 否則,Android無法通過您的PendingIntent
向其發送廣播。
您也不需要getApplicationContext()
-僅在完全准確地知道使用它的原因時才使用它。
最后,使用AlarmManager
獲取控制權並不是使用AlarmManager
的特別AlarmManager
。 充其量,對於書籍示例或輕量級測試而言,這很好。 如果確實需要每秒獲得控制權,那么假設每秒獲得控制權實際上是明智的選擇,那么還有更好的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.