Тревога срабатывания через каждые 2 дня Android - PullRequest
0 голосов
/ 15 апреля 2020

Я хочу установить будильник, который срабатывает через 2 дня, скажем, в указанное c время. Например, я установил будильник на 10:00 утра и хочу, чтобы он срабатывал через 2 дня в 10:00 утра при срабатывании через каждые 2 дня. Пока что я пишу код, но после установки времени и интервальных дней мой сигнал тревоги срабатывает сразу на месте, и я намеревался запускать его через каждые 2 дня. ниже мой код:


        final int hour = alarmTimePicker.getCurrentHour();
        final int minute = alarmTimePicker.getCurrentMinute();
        String hour_string = String.valueOf(hour);
        String minute_string = String.valueOf(minute);
        // 10:8 to 10:08
        if (minute < 10) {
            minute_string = "0" + String.valueOf(minute);
        }
        time = hour_string + ":" + minute_string;

        calendar = Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getCurrentHour());
        calendar.set(Calendar.MINUTE, alarmTimePicker.getCurrentMinute());


        SharedPreferences pref4 = getSharedPreferences("RequestCode", Activity.MODE_PRIVATE);
        RequestCode = pref4.getString("code", "0");
        if (RequestCode.equals("0")) {
            RequestCode = "2";
        }
        int code = Integer.parseInt(RequestCode);

        Intent intent1 = new Intent(AutoForwarding.this, AlarmReceiver.class);
        intent1.putExtra("requestCode", code);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(AutoForwarding.this, code, intent1, PendingIntent.FLAG_UPDATE_CURRENT);

        AlarmManager am = (AlarmManager) AutoForwarding.this.getSystemService(Context.ALARM_SERVICE);
        //am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
        am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000 * 60 * 60 * 48, pendingIntent);

        code++;
        String rCode = String.valueOf(code);

        SharedPreferences pref3 = getSharedPreferences("RequestCode", MODE_PRIVATE);
        SharedPreferences.Editor ed3 = pref3.edit();
        ed3.putString("code", rCode);
        ed3.apply();
    }

что я делаю не так? Я думаю, что я делаю неправильно в calendar.getTimeInMillis(), но я не уверен, что делать, чтобы сделать это правильно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...