私は通知部門に強いアプリケーションの開発者です。最近、Android 4.0.3 を実行している HTC One X にアップグレードしましたが、Android 2.1 を実行している以前の電話では気付かなかった問題に気付きました。
アプリが投稿する通知には日付が設定されておらず、以前の電話通知にも日付が表示されませんでした。私の新しい電話では、通知が投稿されたときに日付が表示されませんが、しばらくすると「1970 年 1 月 1 日(木)」という日付が表示され、その理由がわかりません。
「しばらくしてから」と言うとき、画面を数秒/数分間見つめ続けて、日付が表示されるのを見るという意味ではありません. 私が言いたいのは、電話をしばらく使用した後、それを置いて、もう一度使用すると、最終的には、アプリによって投稿されたすべての通知にその日付が表示されるということです。
これが数回発生するのを見てきましたが、パターンを見つけることができず、これがいつ発生したかを理解して、修正を見つけることができるかどうかを確認できません。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 に設定し、オブジェクトで値を直接when
変更して別の値に設定していることはわかっています。最初にこれを行った理由を思い出せませんが、理由があります。when
notification
私が理解できないのは、notify()
メソッドを呼び出した直後にステータスバーの通知を見ると、日付がないということです。電話をしばらく使用した後に表示されるのはなぜですか。
それが私が知りたい、修正したいことです。