Приложение тревоги не основано на системном времени - PullRequest
0 голосов
/ 27 апреля 2018

Мое приложение работает так, пользователь записывает время в минутах, например 40. Тогда приложение позвонит в будильник через 40 минут. Неважно, является ли приложение активным или работает в фоновом режиме, оно все еще работает.

Моя проблема заключается в следующем, так как я использую метод System.currentTimeMillis (); тогда это делает мое приложение зависимым от системного времени. Поэтому, если я изменю системное время в настройках, мое приложение будильника не будет вызываться в установленное время, оно изменится.

например: если время 10:00, и я установил будильник, который будет вызван через 20 минут, то он будет называться 10:20. Однако, если я перейду к настройкам и изменит системное время на 9:00 после установки будильника, то мое приложение будет вызываться через 100 минут. Как я могу предотвратить это, чтобы, когда установлено время для будильника и какое бы системное время не было, будильник будет вызываться после этих минут.

Я проверил это Слушатель изменения даты и времени в Android? и это не то же самое, так как он не работал для меня, и я не до конца понял.

вот мой код:

 public void newSetAlarm(View view) {


            timeEntered = Integer.parseInt(editTextForTime.getText().toString());
            Intent AlarmIntent = new Intent(this, Alarm.class);
            AlarmIntent.putExtra(TIME_LEFT, timeEntered);
            pendingIntentForAlarm = PendingIntent.getBroadcast(getApplicationContext(), 0, AlarmIntent, 0);
            amAlarm = (AlarmManager) getSystemService(ALARM_SERVICE);
            amAlarm.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timeEntered * 60000, pendingIntentForAlarm);}
...