AlarmManager.setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
을 사용하십시오. 유형이 AlarmManager.RTC_WAKEUP
으로 설정되어 기기가 절전 모드 일 때 깨어 났는지 확인하십시오 (요구 사항 인 경우). 이 같은
뭔가 :
Intent intent = new Intent("com.foo.android.MY_TIMER");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
long now = System.currentTimeMillis();
long interval = 60 * 60 * 1000; // 1 hour
manager.setRepeating(AlarmManager.RTC_WAKEUP, now + interval, interval,
pendingIntent); // Schedule timer for one hour from now and every hour after that
는이 방법에 PendingIntent를 전달합니다. 인 텐트 누출에 대해 걱정할 필요가 없습니다.
더 이상 필요하지 않은 경우 AlarmManager.cancel()
으로 전화하여 알람을 끄십시오.
수신자를 코드에 등록하지 마십시오.
<receiver android:name=".MyReceiver">
<intent-filter>
<action
android:name="com.foo.android.MY_TIMER"/>
</intent-filter>
</receiver>
앱이 "강제 중지됨"인 경우 수신되지 않습니다. 수신자는 BroadcastReceiver의 매니페스트 항목에
<intent-filter>
태그를 추가하기 만하면됩니다. 거기에 대한 해결 방법이 있습니까? – Mani아닙니다. https://groups.google.com/forum/#!topic/android-gcm/MqVlA3Sj26c –
간격으로 'AlarmManager.INTERVAL_HOUR'을 (를) 사용할 수 있습니다. –