timeChangeIntentFilter

timeChangeIntentFilter

我正在为androidnotification使用一个自定义的remoteview,我想模拟系统行为。
android如何更新其通知时间格式-一旦设置,它们是否会更改?我怎么能模仿这种行为?

最佳答案

我不确定你是否还在寻找答案,因为你自己已经提供了答案。然而,如果你想实现你最初的目标,你可能会想
每当时间改变时重建remoteview(只是简单得多)
设置一个广播接收器来捕捉时钟的滴答声,这样你就知道时间什么时候变了。
所以,有些代码有点像这样:

class MyCleverThing extends Service (say) {

    // Your stuff here

    private static IntentFilter timeChangeIntentFilter;
    static {
        timeChangeIntentFilter = new IntentFilter();
        timeChangeIntentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
        timeChangeIntentFilter.addAction(Intent.ACTION_TIME_CHANGED);
    }

    // Somewhere in onCreate or equivalent to set up the receiver
    registerReceiver(timeChangedReceiver, timeChangeIntentFilter);

    // The actual receiver
    private final BroadcastReceiver 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))
        {
            updateWidgets();  // Your code to rebuild the remoteViews or whatever
        }
    }
};

09-04 14:57