Android通知时间格式如何更新?

时间:2013-03-02 03:31:03

标签: android

我正在使用AndroidNotification的自定义RemoteView,我想模仿系统行为。

Android如何更新其通知时间格式 - 设置后是否会更改?我怎么能模仿这种行为?

4 个答案:

答案 0 :(得分:2)

我对通知时间格式知之甚少,但是如果你想模仿他们的行为应该看一下DateUtils类,特别是formatSameDayTime我认为你做了什么

答案 1 :(得分:2)

除非使用相同的ID再次调用.notify,否则无法在添加后更新通知。

如果处理时间戳,最好在不使用RemoteView的情况下使用本机Notification NotificationCompat.Builder。

答案 2 :(得分:0)

我不确定你是否还在寻找答案,因为你自己提供了答案。但是,如果您希望实现原始目标,则可能需要

  • 每当时间发生变化时重建RemoteView(这样更容易)
  • 设置BroadcastReceiver以捕捉时钟的滴答声,以便知道时间的变化。

所以,有些代码有点像这样:

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

答案 3 :(得分:0)

每次更新通知时,都要做一些简单的事情(24小时)......

public void updateNotifTime(RemoteViews customNotifView){
    Date currentTime = new Date();
    int mins = currentTime.getMinutes();
    String minString = "";
    if(mins<10){
       minString = "0";
    }
    minString += mins;
    customNotifView.setTextViewText(R.id.time, currentTime.getHours()+":"+minString);
}