我正在为 AndroidNotification 使用自定义 RemoteView,并且我想模仿系统行为。
Android 如何更新它的通知时间格式——一旦设置它们会改变吗?我怎样才能模仿这种行为?
我正在为 AndroidNotification 使用自定义 RemoteView,并且我想模仿系统行为。
Android 如何更新它的通知时间格式——一旦设置它们会改变吗?我怎样才能模仿这种行为?
我不太了解通知时间格式,但如果你想模仿他们的行为,应该看看这个DateUtils
类,尤其是我认为你所描述的formatSameDayTime 。
添加后无法更新通知,除非使用相同的 ID 再次调用 .notify。
如果处理时间戳,最好使用原生的 Notification NotificationCompat.Builder 而不使用 RemoteViews。
鉴于您自己提供了答案,我不确定您是否仍在寻找答案。但是,如果您希望实现最初的目标,您可能会想要
所以,一些代码有点像这样:
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
}
}
};
每次更新通知时,请执行以下简单操作(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);
}