2010-04-26 5 views
0

Application을 확장하는 클래스가 있습니다. 클래스에서는 AlarmManager를 호출하고 인 텐트를 전달합니다. BroadcastReceiver를 확장 한 예정된 EventReceiver 클래스는 onReceive 메소드에서 호출을 처리합니다. 다른 이벤트를 예약하기 위해 onReceive 메소드에서 의도를 다시 호출하는 방법은 무엇입니까?반복 알람/이벤트 예약

답변

0

set() 대신 setRepeating()을 사용하면 자동으로 다시 실행될 수 있습니다. 또는 Intent (동일한 동작, 동일 Uri, 동일한 구성 요소 등)에 다른 PendingIntent을 생성하면됩니다. 매번 원본 PendingIntent 개체가 필요하지 않습니다.

+0

시간이 다양해지기 때문에 반복 설정을 사용할 수 있다고 생각하지 않습니다. 내 큐에서 다음을 가져와야합니다. 동일한 의도와 일정 이벤트를 사용하여 다양한 이벤트를 발생시키는 방법이 있다면 좋을 것입니다. 타임스. 예를 들어 내가 전달하고자하는 배열이 있고 이벤트를 차례로 연결하지 않아도됩니다. – JDM

+0

그런 다음 약간 다른 '의도'를 사용하고 블록에서 모두 일정을 잡으십시오. "약간 다르다"는 것은 여분의 것보다 많이 달라야합니다. 그렇지 않으면'PendingIntent'의 견해와 동등합니다. 만약 당신이 구성 요소를 지정하는'Intent '(즉,'Class'를 생성자에 대한 두 번째 매개 변수로 취함)를 사용한다면, 고유 한 액션 문자열을 쳐 넣으십시오. 영수증. – CommonsWare

0
final Intent intent = new Intent(context, YourService.class); 
final PendingIntent pending = PendingIntent.getService(context, 0, intent, 0); 
final AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
alarm.cancel(pending); 
long interval = 30000;//milliseconds 
alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),interval, pending); 

더 자세한 샘플은 Photostream 샘플 응용 프로그램 http://code.google.com/p/apps-for-android/에서 찾을 수 있습니다.