У меня андроид Progress Bar Notification, и я не знаю, как его отменить.Уведомление берет, сколько секунд должно быть индикатором выполнения из EDITTEXT, и когда я нажимаю кнопку 2 раза, первый не отменяется, а новый начинается поверх первого, и индикатор выполнения работает вместе.так как я могу отменить первый и начать новый?Еще один вопрос, есть ли возможность позвонить Уведомлению индикатора выполнения от Broadcastreceiver?
это код
mButtonStartPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int time = Integer.parseInt(mEditTextInput.getText().toString());
Intent intent = new Intent(MainActivity.this, Alarm1.class);
PendingIntent p1 = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
AlarmManager a = (AlarmManager) getSystemService(ALARM_SERVICE);
a.set(AlarmManager.RTC, System.currentTimeMillis() + time * 1000, p1);
if (mTimerRunning) {
pauseTimer();
}else {
startTimer();
}
String value= mEditTextInput.getText().toString();
final int input2=Integer.parseInt(value);
Intent resultInent = new Intent(Avstangingg.this, Avstangingg.class);
PendingIntent resultPendingIntent = PendingIntent.getActivity(Avstangingg.this, 1, resultInent, PendingIntent.FLAG_UPDATE_CURRENT);
final NotificationCompat.Builder notification = new NotificationCompat.Builder(Avstangingg.this, CHANNEL_2_ID)
.setSmallIcon(R.drawable.index)
.setContentTitle("time")
.setContentText("progress")
.setPriority(NotificationCompat.PRIORITY_LOW)
.setOngoing(true)
.setAutoCancel(true)
.setOnlyAlertOnce(true)
.setContentIntent(resultPendingIntent)
.setProgress(input2, 0, false);
notificationManager.notify(2, notification.build());
new Thread(new Runnable() {
@Override
public void run() {
SystemClock.sleep(0);
for (int progress = 0; progress <= input2; progress += 1) {
notification.setProgress(input2, progress, false);
notificationManager.notify(2, notification.build());
SystemClock.sleep(1000);
}
notification.setContentText("end")
.setProgress(0, 0, false)
.setOngoing(false);
notificationManager.notify(2, notification.build());
}
}).start();
, и это мой BroadcastReceiver
public class Alarm extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Finish", Toast.LENGTH_LONG).show();
Vibrator v = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
v.vibrate(7000);
MediaPlayer mp;
mp = MediaPlayer.create(context, R.raw.alert);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.reset();
mp.release();
mp = null;
}
});
mp.start();
}
}