我正在使用AndroidNotification的自定义RemoteView,我想模仿系统行为。
Android如何更新其通知时间格式 - 设置后是否会更改?我怎么能模仿这种行为?
答案 0 :(得分:2)
我对通知时间格式知之甚少,但是如果你想模仿他们的行为应该看一下DateUtils
类,特别是formatSameDayTime我认为你做了什么
答案 1 :(得分:2)
除非使用相同的ID再次调用.notify,否则无法在添加后更新通知。
如果处理时间戳,最好在不使用RemoteView的情况下使用本机Notification NotificationCompat.Builder。
答案 2 :(得分:0)
我不确定你是否还在寻找答案,因为你自己提供了答案。但是,如果您希望实现原始目标,则可能需要
所以,有些代码有点像这样:
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);
}