What is Pending Intent ?
- 작업 실행을 지연할 수 있는 wrapper
- intent 캡슐화 가능
- activity 시작 가능
- intent broadcast 가능
- service 시작 가능
- 사용자 대신 다른 작업 수행 가능
→ 의도를 다른 구성요소에 위임, 나중에 할 작업 예약 가능!
Make Pending Intent
val intent = Intent(context, MyActivity::class.java)
val pendingIntent = PendingIntent.getActivity(context, requestCode, intent, flags)
Pending Intent - FLAG
- FLAG_UPDATE_CURRENT : 현재 intent의 추가 데이터로 업데이트됨
- FLAG_CANCEL_CURRENT : Pending Intent 이미 존재하면 새 intent 생성 전에 취소됨
- FLAG_ONE_SHOT : 한 번만 사용 가능. 실행 후 자동 취소
- FLAG_NO_CREATE : 존재하는게 없으면 안만들고 NULL반환함
Pending Intent를 사용하는 방법
- Activity 시작 : ex) 알람을 탭하면 연결된 activity 가 시작됨
- Broadcast Intent : alert 을 예약하고 broadcast
- service 시작 : 특정 시간에 / 이벤트의 응답으로(사용자가 위젯 클릭 등)
주의사항
- 명시적인 구성요소의 사용
- FLAG_UPDATE_CURRENT 남용 금지
- 고유한 요청 코드 유지
Uploaded by N2T