Android 活动启动时停止重复报警
我有这样的代码:Android 活动启动时停止重复报警,android,Android,我有这样的代码: public class MyAlarm extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); PendingIntent pendingIn
public class MyAlarm extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, pendingIntent);
DBHelper dbHelper = new DBHelper(context);
dbHelper.getWritableDatabase();
if (dbHelper.getProfile().getHp() < dbHelper.getProfile().getHpMax()) {
dbHelper.setHp("1", dbHelper.getProfile().getHp() + 10);
Toast.makeText(context, "Your character gained 10HP and now has " + dbHelper.getProfile().getHp() + "HP", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(context, "Your character is fully recovered", Toast.LENGTH_LONG).show();
alarmManager.cancel(pendingIntent);
}
}
}
我希望警报在用户启动活动时取消,并在活动暂停时启动此警报。问题是,当我启动活动时,此警报仍在运行。如何在onStart()中停止它
@Override
protected void onStart() {
super.onStart();
Intent intent = new Intent(this, MyAlarm.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 1253, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
}
@Override
protected void onPause() {
super.onPause();
setAlarm(System.currentTimeMillis() + 10000);
}
private void setAlarm(long timeInMilis) {
Toast.makeText(getApplicationContext(), "Regeneration activated", Toast.LENGTH_LONG).show();
alarmManager = (AlarmManager) getSystemService((Context.ALARM_SERVICE));
Intent intent = new Intent(this, MyAlarm.class);
pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, timeInMilis, pendingIntent);
}