본문 바로가기
Smart Device/Android

PendingIntent

by 언덕너머에 2014. 5. 8.

PendingIntent는 특정 Component(Activity / Service 등)가 Intent를 생성한 후, 해당 Intent를 바로 사용하는 대신, 나 대신 다른 Component가 해당 Intent를 사용 할 수 있도록 할 때 사용하는 클래스입니다. 

Service를 이용한 예제

int POLL_INTERVAL = 1000 * 15; //15초 

Intent i = new Intent(context, PollService.class);
PendingIntent pi = PendingIntent.getService(context, 0, i, 0);

AlarmManager alarmManager =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);

if (isOn) {
    alarmManager.setRepeating(AlarmManager.RTC, System.currentTimeMillis(), 
POLL_INTERVAL, pi);
} else {
    alarmManager.cancel(pi);
    pi.cancel();
}

PendingIntent.getActivity는 PendingIntent를 만드는 팩토리함수입니다. PendingIntent가 Send 될 때, startActivtiy API가 호출되는 PendingIntent를 만들어 줍니다. 

보다 자세한 내용은 안드로이드 개발자 사이트를 참조하세요.
http://developer.android.com/reference/android/app/PendingIntent.html