# PendingIntent

1

AndroidStudio

목록 보기
53/83

PendingIntent는 Pending 이라는 단어의 뜻을 알면 된다.

Intent의 의미
Android에는 크게 4대 컴포넌트들이 있다.
Activity,Service,Broadcast Receiver, Content Provider
인텐트는 이러한 구성요소들 간의 작업을 위한 정보를 전달해 주는 역할을 한다.

Pending이란

기존의 Intent역할을 하지만 미정인 상태의 Intent로써

앱이 구동되거나 특정 액티비티, 특정 시점에서 Intent를 수행하는 것을 보장해준다.

PendingIntent를 사용하는 주된 사례중 하나는 Notification(푸시알림)이다.

다른 앱이 프로세스를 점유하고 있을 때 Intent를 수행하게 만들어준다.


PendingIntent 생성하기

앞서 안드로이드 4대 컴포넌트가 있다는 사실을 안다면 컴포넌트의 유형에 따라 생성자가 다르다는 것에 대한 이해를 할 수 있을 것이다.
컴포넌트의 유형에 따라 생성자를 호출하는 방식이 다르다.

Activity

PendingIntent.getActivity(Context, Int, Intent, Int)

Service

PendingIntent.getService(Context, Int, Intent, Int)

BroadcastReceiver

PendingIntent.getBroadcast(Context, Int, Intent, Int)

파라미터 정보

PendingIntent의 파라미터는 순서대로 아래와 같다.

val pendingIntent = PendingIntent.getActivity(
		this, notifyId /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT
)
  1. Context 
  2. requestCodePendingIntent 를 가져올 때 구분하기 위한 고유 코드
  3. 실행할 Intent
  4. 플래그
    FLAG_CANCEL_CURRENT→ 이전에 생성한 PendingIntent 취소 후 새로 생성
    FLAG_NO_CREATE→ 이미 생성된 PendingIntent 가 있다면 재사용 (없으면 Null 리턴)
    FLAG_ONE_SHOT→ 해당 PendingIntent 를 일회성으로 사용
    FLAG_UPDATE_CURRENT→ 이미 생성된 PendingIntent 가 있다면, Extra Data 만 갈아끼움 (업데이트)
profile
러닝커브를 따라서 등반중입니다.

0개의 댓글