Когда мое приложение запущено, он выполняет вызов API, а затем рассылает уведомления на основе результатов. Это составляет около 10 уведомлений, которые планируются. Кажется, что проблема связана с тем, что временная метка, отображаемая в фактическом уведомлении, является неправильной.Неправильная метка времени для будущих уведомлений
Поскольку я создаю эти уведомления, а затем планирую будильник с AlarmManager
, время по умолчанию, указанное в уведомлении, будет временем, в которое создается уведомление (System.currentTimeMillis()
).
Я попытался использовать метод .setWhen()
на своем Notification.Builder
, чтобы установить его в то время, которое я использую, чтобы запланировать ранее упомянутый сигнал. Это немного лучше, однако, поскольку уведомления не гарантируются в указанное время, я часто получаю уведомления за несколько минут в прошлом.
Кроме того, я попытался вручную переопределить when
поле на уведомления в моей BroadcastReceiver
, прямо перед .notify()
на самом деле называется:
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
игнорируется.
Честно говоря, я просто ищу способ отображения временной отметки в уведомлении временем ее фактического отображения.
спасибо @sammy позвольте мне попробовать это! – xbadal
Спасибо, сэм! работал Прекрасно – xbadal
Можете ли вы рассказать мне, как создать несколько уведомлений.? это можно сделать, предоставив mNotificationId? то мне нужно отменить то же самое! – xbadal