AlarmManager 一次警报不触发
AlarmManager one time alarm does not fire
我想用以下内容触发一次性警报,这基本上是 https://developer.android.com/training/scheduling/alarms.html 的复制(第二个 ELAPSED_REALTIME_WAKEUP 示例)。
这是里面的 public static class PlaceholderFragment extends Fragment implements 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");
}
public class MuteReceiver extends 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);
}
我按下了 Fragment 中的按钮,看到了日志消息 "alarm set",但是一分钟后(甚至更晚),仍然没有关于构造 MuteReceiver 或启动 MuteReceiver 的日志(在 onReceive 中)
您有已注册广播的保证列表文件
我想用以下内容触发一次性警报,这基本上是 https://developer.android.com/training/scheduling/alarms.html 的复制(第二个 ELAPSED_REALTIME_WAKEUP 示例)。
这是里面的 public static class PlaceholderFragment extends Fragment implements 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");
}
public class MuteReceiver extends 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);
}
我按下了 Fragment 中的按钮,看到了日志消息 "alarm set",但是一分钟后(甚至更晚),仍然没有关于构造 MuteReceiver 或启动 MuteReceiver 的日志(在 onReceive 中)
您有已注册广播的保证列表文件