私のアプリケーションが起動すると、APIコールが実行され、結果に基づいて通知がスケジュールされます。これは約10の通知が予定されていることになります。実際の通知に表示されるタイムスタンプが正しくないという問題があるようです。今後の通知でタイムスタンプが正しくない
これらの通知を作成してからAlarmManager
でアラームをスケジュールするので、通知に表示されるデフォルトの時刻は、通知が作成された時刻(System.currentTimeMillis()
)になります。
私はNotification.Builder
に.setWhen()
メソッドを使用して、前述のアラームのスケジュールに使用している時間に設定しようとしました。ただし、通知が指定された正確な時刻に配信されることが保証されていないため、これは少し良くなりました。過去に数分の通知を受け取ることがよくあります。
また、私は.notify()
が実際に呼び出される直前に、手動で私のBroadcastReceiver
に通知のwhen
フィールドを上書きしようとした:
public class NotificationPublisher extends BroadcastReceiver {
public static String NOTIFICATION_ID = "notification_id";
public static String NOTIFICATION = "notification";
public void onReceive(Context context, Intent intent) {
NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = intent.getParcelableExtra(NOTIFICATION);
notification.when = System.currentTimeMillis();
int id = intent.getIntExtra(NOTIFICATION_ID, 0);
notificationManager.notify(id, notification);
}
}
しかし、上記のシナリオでは、.when
が無視されるようです。
率直に言えば、通知に表示されるタイムスタンプを実際に表示される時刻にする方法を探しています。
感謝を助ける
願っています! – xbadal
ありがとうサミー!完全に働いた – xbadal
あなたは複数の通知を作成する方法を教えてくれますか?それはmNotificationIdを提供することによって行うことができますか?私は同じをキャンセルする必要があります! – xbadal