2012-06-23 7 views
3

Я пытался настроить мой первый сигнал тревоги с помощью AlarmManager и BroadcastReceiver, как описано здесь: http://smartandroidians.blogspot.com.es/2010/04/alarmmanager-and-notification-in.htmlAlarmManager/BroadcastReceiver не работает

Моя установка:

AndroidManifest.xml:

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

Мои Основная деятельность 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 оболочки dumpsys сигнализации" показать это, так что кажется, что умысел называют:

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

Однако Logcat ничего не показывает на "RPod_SleepAlarm" тег. Что я могу делать неправильно?

ответ

2

Я нашел проблему.

Приемник на манифесте находился внутри другого приемника для виджета, и он должен быть дочерним элементом приложения. Итак, если у вас такое же поведение, как и я, проверьте правильность настройки AndroidManifest.xml:

+1

Вы должны принять это как ответ :) –

+0

Отличный ответ! Как я был глуп! Это была самая глупая вещь, когда-либо сделанная в спешке, потому что я знал, как это работает! Черт! – sud007