0

AlarmManager を使用して通知を起動しています。通知が午前 10 時 30 分に発生し、24 時間ごとに繰り返されるようにします。アプリ起動時の通知を希望しません。

私は自分のコードを投稿しています。主な問題は、夜の 10:30 にもアラームが鳴ることです (電話のタイムゾーンが 12 時間の場合)。このコードを yest に変更して確認したところ、10:30、1、4、7 にアラーム yest nite が表示されまし

た。

コード :

Intent myIntent = new Intent(Splash.this, AlarmReceiver.class);

    PendingIntent pendingIntent = PendingIntent.getBroadcast(Splash.this,
            0, myIntent, 0);

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

    Calendar firingCal = Calendar.getInstance();
    Calendar currentCal = Calendar.getInstance();

    firingCal.set(Calendar.HOUR_OF_DAY, 10);
    firingCal.set(Calendar.MINUTE, 30);
    firingCal.set(Calendar.SECOND, 0);

    long intendedTime = firingCal.getTimeInMillis();
    long currentTime = currentCal.getTimeInMillis();

    if (intendedTime >= currentTime) {
        alarmManager.setRepeating(AlarmManager.RTC, intendedTime,
                AlarmManager.INTERVAL_DAY, pendingIntent);

    } else {
        firingCal.add(Calendar.DAY_OF_MONTH, 1);
        intendedTime = firingCal.getTimeInMillis();

        alarmManager.setRepeating(AlarmManager.RTC, intendedTime,
                AlarmManager.INTERVAL_DAY, pendingIntent);
    }
4

1 に答える 1