2016-08-13 4 views
0

Я хочу вызвать одноразовый аварийный сигнал со следующим, который в основном является репликацией от https://developer.android.com/training/scheduling/alarms.html (второй пример ELAPSED_REALTIME_WAKEUP).Аварийный сигнал AlarmManager один раз не срабатывает

Это внутри общественного статического класса PlaceholderFragment расширяет фрагмент реализует View.OnClickListener:

@Override 
    public void onClick(View v) { 
     Intent intent; 
     intent = new Intent(this.getActivity(), MuteReceiver.class); 
     AlarmManager alm = (AlarmManager)(this.getActivity().getSystemService(Context.ALARM_SERVICE)); 
     PendingIntent alarmIntent = PendingIntent.getBroadcast(getActivity(), 0, intent, 0); 
     alm.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
      SystemClock.elapsedRealtime() + 60*1000, 
      alarmIntent); 
     Log.d("MainActivity", "alarm set"); 
    } 

общественного класса MuteReceiver расширяет BroadcastReceiver как это:

public MuteReceiver() { 
    Log.d("MuteReceiver", "constructed"); 
} 

@Override 
public void onReceive(Context context, Intent intent) { 
    final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 
    boolean started = prefs.getBoolean(MuteService.STARTED, false); 
    Log.d("MuteReceiver", "Started=" + started); 
} 

Я нажал на кнопку в фрагменте, пила сообщение журнала «набор тревог», но через одну минуту (и намного позже) все еще не записывается журнал о создании MuteReceiver или запущен MuteReceiver (в onReceive)

+0

Вы зарегистрированы «MuteReceiver» в манифесте? – Shaishav

ответ

0

У вас есть файл с гарантированным номером с зарегистрированной трансляцией

+0

Я думаю, вы имели в виду запись в AndroidManifest.xml. Я добавил, и это сработало. Я приму свой ответ, но возникнут новые проблемы, возможно, я попытаюсь исправить, прежде чем публиковать другой вопрос. – cpliu338

Смежные вопросы