簡體   English   中英

AlarmManager / BroadcastReceiver無法正常工作

[英]AlarmManager/BroadcastReceiver not working

我一直在嘗試使用AlarmManager和BroadCastReceiver設置我的第一個警報,如下所述: http ://smartandroidians.blogspot.com.es/2010/04/alarmmanager-and-notification-in.html

我的設置:

AndroidManifest.xml中:

<receiver android:name="es.radiopodcastellano.player.SleepAlarm" />

我的主要Activity onCreate(這段代碼實際上駐留在一個子類上,但為了簡化我把它放在那里):

@Override
    public void onCreate(Bundle savedInstanceState) {
            // <Stripped code>
    AlarmManager alarm = (AlarmManager) currentContext.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(this.getApplicationContext(), SleepAlarm.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT);
    alarm.set(AlarmManager.RTC_WAKEUP,(System.currentTimeMillis() + (5 * 1000)),pendingIntent);
}

SleepAlarm.java:

public class SleepAlarm extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Log.d("RPod_SleepAlarm","Alarm!!");
}

}

“adb shell dumpsys alarm”的輸出顯示了這一點,因此似乎調用了intent:

  es.radiopodcastellano.player
221ms running, 32 wakeups
44 alarms: flg=0x4 cmp=es.radiopodcastellano.player/.SleepAlarm

但是,Logcat沒有顯示“RPod_SleepAlarm”標記。 我能做錯什么?

我發現了這個問題。

清單上的接收器位於窗口小部件的另一個接收器內,它必須是應用程序的子級。 因此,如果您的行為與我相同,請檢查您是否正確設置了AndroidManifest.xml:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM