我想用以下触发一次性警报,这基本上是从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扩展广播接收器是这样的:
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);
}
我按在片段中的按钮,锯日志消息“alarm set”,但一分钟后(还有很久),仍然没有关于正在构建的MuteReceiver或MuteReceiver的启动日志(在onReceive中)
你是否在清单中注册了'MuteReceiver'? – Shaishav