У меня есть сигнал, который запускает обратный отсчет с уведомлением, которое ведет обратный отсчет и обновляет уведомление.
Проблема в том, что когда уведомление исчезает, таймер создает новое.
Как я могу остановить таймер при отклонении уведомления?
Мой код ниже:
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String time = intent.getStringExtra("Time");
long milliSeconds = GetTimeToNextPrayerInMilliseconds(time);
int intentId = intent.getIntExtra("IntentId", 0);
CreateCountDownTimer(milliSeconds, intentId);
}
private void CreateCountDownTimer(long milisecondsToFinish, final int intentId) {
CountDownTimer timer = new CountDownTimer(milisecondsToFinish, 1000) {
@Override
public void onTick(long millis) {
//int seconds = (int) (millis / 1000) % 60;
int minutes = (int) ((millis / (1000 * 60)) % 60);
int hours = (int) ((millis / (1000 * 60 * 60)) % 24);
String text = String.format("%02d:%02d", hours, minutes);
Notification notification = new Notification.Builder(_context)
.setContentTitle("Title")
.setContentText("USA")
.setSmallIcon(R.drawable.logo)
.build();
NotificationManager notificationManager = (NotificationManager) _context.getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(intentId, notification);
}
@Override
public void onFinish() {
NotificationManager notificationManager = (NotificationManager) _context.getSystemService(NOTIFICATION_SERVICE);
notificationManager.cancel(intentId);
}
}.start();
}