次のようにワンタイムアラームをトリガーしたいのですが、これは基本的には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で)。
マニフェストにMuteReceiverを登録しましたか? – Shaishav