Android 换日广播接收机

Android 换日广播接收机,android,broadcastreceiver,broadcast,receiver,Android,Broadcastreceiver,Broadcast,Receiver,我正在尝试使用安卓系统中的广播接收器,在白天变化时执行一些代码 这是我的代码,但无法正常工作 static { s_intentFilter = new IntentFilter(); s_intentFilter.addAction(Intent.ACTION_TIME_TICK); s_intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED); s_intentFilter.addAction(Intent.

我正在尝试使用安卓系统中的广播接收器,在白天变化时执行一些代码

这是我的代码,但无法正常工作

static {
    s_intentFilter = new IntentFilter();
    s_intentFilter.addAction(Intent.ACTION_TIME_TICK);
    s_intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
    s_intentFilter.addAction(Intent.ACTION_TIME_CHANGED);
}


private final BroadcastReceiver m_timeChangedReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();

        if (action.equals(Intent.ACTION_TIME_CHANGED) ||
                action.equals(Intent.ACTION_TIMEZONE_CHANGED))
        {
            System.out.println("Broadcast Activated");
        }
    }
};

有什么建议吗?

您注册了接收者吗?根据文档(),您需要通过调用Context.registerReceiver()注册它,或者通过AndroidManifest.xml中的标记静态发布实现

改用,并在第二天午夜安排广播意图。声明在清单中用作PendingEvent目标的BroadcastReceiver


注意:当设备关闭时,警报会丢失,因此您应该检查重新启动后的日期,并在需要时重新编写警报程序。

是的,我忘记了:重写受保护的void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);registerReceiver(m_timeChangedReceiver,s_intentFilter);您是否在清单中注册了意图?还请记住,这些操作仅在用户手动更改时间设置时才会触发。