我是一个在通知部门很强大的应用程序的开发人员。我最近升级到运行 Android 4.0.3 的 HTC One X,并注意到我以前运行 Android 2.1 的手机从未注意到的问题。
我的应用程序发布的通知没有设置日期,并且我以前的电话通知中从未显示日期。在我的新手机上,发布通知时没有出现日期,但过了一会儿,出现了“Thu, 1 Jan 1970”日期,我不明白为什么。
当我说“一段时间后”时,我并不是说您一直盯着屏幕几秒钟/几分钟并看到日期出现。我的意思是在使用手机一段时间后,放下它,再次使用它,无论如何,最终,我的应用程序发布的所有通知都会有那个日期。
我已经看到这种情况发生了几次,但我找不到模式并理解何时发生这种情况,看看我是否能找到解决办法。有谁知道为什么这可能会发生在 ICS 上?
我不知道它有多相关,但我的postNotification
方法有完整的代码:
NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext);
Intent intent = NoteEditorSingleActivity.createIntent(mContext);
intent.putExtra(AgendaNotesAdapter.KEY_ROW_ID, notifyId);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
builder.setContentIntent(PendingIntent.getActivity(mContext, (int)notifyId, intent,
PendingIntent.FLAG_CANCEL_CURRENT));
builder.setContentTitle(noteTitle);
builder.setContentText(noteDescription);
builder.setSmallIcon(iconId);
builder.setTicker(noteTitle.length() > 0 ? noteTitle : null);
builder.setWhen(0);
Notification notification = builder.getNotification();
long noteSortOrder = Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD ? 1 : -1;
notification.flags = Notification.FLAG_NO_CLEAR;
notification.when = noteSortOrder * notifyId;
mNotificationManager.notify((int)notifyId, notification);
我知道我正在使用构建器将 0 设置为 0,并通过直接在对象中when
更改值来设置不同的值。我不记得我最初为什么这样做,但它是有原因的。when
notification
我不明白的是,在调用该notify()
方法并查看状态栏中的通知之后的那一刻,没有日期。为什么使用手机一段时间后会出现。
这就是我想知道和解决的问题。