简体   繁体   English

AlarmManager一次警报不触发

[英]AlarmManager one time alarm does not fire

I want to trigger a one-time alarm with the following, which is basically a replicate from https://developer.android.com/training/scheduling/alarms.html (second ELAPSED_REALTIME_WAKEUP example). 我想用以下内容触发一次警报,该警报基本上是从https://developer.android.com/training/scheduling/alarms.html复制的(第二个ELAPSED_REALTIME_WAKEUP示例)。

This is inside public static class PlaceholderFragment extends Fragment implements View.OnClickListener: 这是在公共静态类PlaceholderFragment内的扩展Fragment实现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 is like this: 公共类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);
}

I pressed the button in the Fragment, saw the log message "alarm set", but after one minute (and much later), still no log about MuteReceiver being constructed or MuteReceiver started (in onReceive) 我按了Fragment中的按钮,看到了日志消息“ alarm set”,但是一分钟后(甚至更晚),仍然没有关于正在构建MuteReceiver或启动MuteReceiver的日志(在onReceive中)

您拥有一个已注册广播的保证清单文件

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM