Mam aplikację, która wymaga kodu do wykonania co minutę. Problem polega jednak na tym, że kod musi być wykonywany przy każdej minucie zmiany zegara. Co oznacza, że jeśli jest 12:34, kod zostanie wykonany o godzinie 12.35 i będzie kontynuowany. Ale mój obecny kod działa, ale zawiera sekundy. Znaczenie:zaplanowany alarm powtarzający się co minutę zegara Android
Jeśli zostanie uruchomiony kod 12:34:30 i alarm, kod zostanie wykonany. Ale kod jest następnie wykonywany o 12:35:30.
Chcę, aby kod wykonywany był co minutę zgodnie z zegarem telefonu. Poniżej znajduje się aktualny kod.
Intent intent2 = new Intent(MainActivity.this, MyABService.class);
PendingIntent pintent = PendingIntent.getService(MainActivity.this, 0, intent2, 0);
AlarmManager alarm_manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm_manager.setRepeating(AlarmManager.RTC, c.getTimeInMillis(), 1 * 1000, pintent);
Im robię to co sekundę, aby efekt miał miejsce dokładnie w tym samym czasie. Zamiast go co drugi muszę go powtarzać przy każdej zmianie minut zegara (co minutę)
Jak mogę iść o tym
Jeśli tylko trzeba to w czasie, gdy aplikacja jest uruchomiona, a ekran jest włączony, używać rozwiązań wewnątrzprocesowych, takich jak 'ScheduledExecutorService'. Jeśli szukasz tego do działania, nawet jeśli proces Twojej aplikacji został przerwany lub ekran nie jest włączony, zrezygnuj i napisz inną aplikację, ponieważ Android nie obsługuje Twojego scenariusza w systemie Android 6.0+. – CommonsWare