PendingIntent는 Pending 이라는 단어의 뜻을 알면 된다.
Intent의 의미
Android에는 크게 4대 컴포넌트들이 있다.
Activity,Service,Broadcast Receiver, Content Provider
인텐트는 이러한 구성요소들 간의 작업을 위한 정보를 전달해 주는 역할을 한다.
Pending이란
기존의 Intent역할을 하지만 미정인 상태의 Intent로써
앱이 구동되거나 특정 액티비티, 특정 시점에서 Intent를 수행하는 것을 보장해준다.
PendingIntent를 사용하는 주된 사례중 하나는 Notification(푸시알림)이다.
다른 앱이 프로세스를 점유하고 있을 때 Intent를 수행하게 만들어준다.
앞서 안드로이드 4대 컴포넌트가 있다는 사실을 안다면 컴포넌트의 유형에 따라 생성자가 다르다는 것에 대한 이해를 할 수 있을 것이다.
컴포넌트의 유형에 따라 생성자를 호출하는 방식이 다르다.
PendingIntent.getActivity(Context, Int, Intent, Int)
PendingIntent.getService(Context, Int, Intent, Int)
PendingIntent.getBroadcast(Context, Int, Intent, Int)
PendingIntent의 파라미터는 순서대로 아래와 같다.
val pendingIntent = PendingIntent.getActivity(
this, notifyId /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT
)