Я довольно новичок в разработке Android, и я решил создать приложение с повторяющимися тревогами, в котором вы можете выбрать, когда закончится цикл, например, после 5 всплесков тревоги. Я установил будильник и все, у меня есть кнопка для отмены будильника, но я не могу ограничить его, поэтому он автоматически останавливается после указанного количества срабатываний будильника. Есть ли способ сделать это? Я хочу, чтобы в окне EditText
можно было записать, сколько пакетов я хочу, записать задержку между аварийными сигналами, а затем нажать кнопку, чтобы установить ее.
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
private Double delay;
private int howManyTimes;
private EditText remaining;
private EditText iterator;
Я хочу сохранить количество пакеты в howManyTimes
.
My OnClickListener
выглядит следующим образом (итератор - это EditText
, где я записываю количество пакетов, а оставшиеся - EditText
, где я записываю задержку между пакетами):
public void onClick(View v) {
if (remaining.getText().toString().equals("") || remaining.getText().toString().equals(".")) {
delay = 0.0;
} else {
delay = (60 * 60 * 1000) * Double.parseDouble(remaining.getText().toString());
}
if (iterator.getText().toString().equals("") || iterator.getText().toString().equals(".")) {
howManyTimes = 0;
} else {
howManyTimes = Integer.parseInt(iterator.getText().toString());
}
if (howManyTimes > 0) {
double tmpDelay = delay;
int tmpIterator = howManyTimes;
updateTimeText(tmpIterator, tmpDelay);
startAlarm();
}
}
startAlarm()
выглядит так:
private void startAlarm() {
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlertReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent, 0);
alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + delay.longValue(),
delay.longValue(), pendingIntent);
}
это мой приемник вещания:
public class AlertReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
NotificationHelper notificationHelper = new NotificationHelper(context);
NotificationCompat.Builder nb = notificationHelper.getChannelNotification();
notificationHelper.getManager().notify(1, nb.build());
}
}