广播接收器用于更改日期

时间:2015-07-03 22:50:13

标签: android broadcastreceiver broadcast receiver

我试图在android中使用广播接收器在白天更改时执行一些代码。

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

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");
        }
    }
};

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您是否注册了接收器?根据文档(http://developer.android.com/reference/android/content/BroadcastReceiver.html),您需要通过调用Context.registerReceiver()来注册它,或者通过AndroidManifest.xml中的标记静态发布实现。

答案 1 :(得分:0)

使用AlarmManager代替并安排第二天午夜的BroadCast意图。声明您在Manifest中用作PendingIntent目标的BroadcastReceiver。

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