2016-08-13 10 views
0

次のようにワンタイムアラームをトリガーしたいのですが、これは基本的にはhttps://developer.android.com/training/scheduling/alarms.html(2番目のELAPSED_REALTIME_WAKEUPの例)です。私は断片でボタンを押した AlarmManagerの1回限りのアラームが発動しない

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); 
} 

、のこぎり:このようなものです

@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を拡張:

これは、パブリック静的クラスPlaceholderFragment内では、フラグメントはView.OnClickListener実装して拡張しますログメッセージは「アラームセット」ですが、1分後にはまだMuteReceiverが構築されていないか、またはMuteReceiverが起動しています(onReceiveで)。

+0

マニフェストにMuteReceiverを登録しましたか? – Shaishav

答えて

0

あなたは登録されたブロードキャストを持つリストファイルを保証しています

+0

あなたはAndroidManifest.xmlのエントリを意味すると思います。私は追加して、それは働いた。私はあなたの答えを受け入れるだろうが、新しい問題がある、おそらく私は別の質問を投稿する前に修正しようとします。 – cpliu338