알람을 사용하던, Receiver를 사용하던, Service를 호출하던
우리는 PendingIntent를 사용하게 됩니다.
이 때 항상 Flag를 설정해 주게 되는데요.
오늘은 이 Flag사용시 주의할 점에 대해서 정리해 보도록 하겠습니다.
1. PendingIntent Flag의 종류
선택할 수 있는 Flag의 종류는 아래의 이미지와 같습니다.
하나하나 보면 다음과 같은데요.
-
FLAG_UPDATE_CURRENT : Pending인텐트가 이미 존재할 경우, Extra Data를 모두 대체
-
FLAG_CANCEL_CURRENT : Pending인텐트가 이미 존재할 경우, 기존 Pending인텐트를 cancel하고 다시 생성
-
FLAG_IMMUTABLE : 이름에서 알 수 있듯이, 기존 PendingIntent 는 변경되지 않구요, 새로 데이터를 추가한 PendingIntent를 보내도 무시함
-
FLAG_NO_CREATE: Pending인텐트가 기존에 존재하지 않으면, Null을 return
-
FLAG_ONE_SHOT : 이름이 아주 직관적인데요, 한번만 사용할 수 있는 PendingIntent란 뜻 임
이중 가장 많이 사용되는 것이 FLAG_CANCEL_CURRENT와 FLAG_UPDATE_CURRENT입니다.
2.동시에 필요한 PendingIntent인가
FLAG의 종류를 결정하기 전에,
PendingIntent가 동시에 존재해야 할 필요가 있는지 생각해 볼 필요가 있습니다.
예를 들면 여러개의 알람이 동시에 존재해야 할 경우가 있겠습니다.
사용자가 4시 8시 이런식으로 여러개를 맞추어놓았을 가능성이 있겠지요.
이러한 PendingIntent들은 제거되지 않고, 나름대로 존재해야할 이유가 있습니다.
물론 업데이트 되는 건에 대해서는 업데이트가 되거나 삭제후 다시 생성하던지 해야하겠지요.
대신 동시에 존재할 필요가 없다면,
많이 쓰이는 FLAG_CANCEL_CURRENT아니면, FLAG_UPDATE_CURRENT
이 두개 중 하나로 충분합니다.
왜냐하면 이들은 기존의 것을 취소하고 새롭게 생성하거나,
기존의 것을 업데이트 한다는 FLAG이기 때문이지요.
'Android 개발 > Android' 카테고리의 다른 글
Android4를 지원하지 않는 라이브러리들 정리 # API21 이상 (1) | 2020.08.05 |
---|---|
Android WebView 를 설정하고 로딩하는 방법을 정리해보자 (0) | 2020.03.19 |
Activity Manifest 설정에 대한 정리(launchMode, screenOrientation, configChanges 등) (0) | 2020.03.10 |
SoundPool 이용해서 다양한 사운드(효과음) 재생하기 #Android (0) | 2019.11.05 |
안드로이드 Build 속도를 개선하는 방법 (0) | 2019.09.24 |
BuildConfig 와 ProductFlavor 정리 # BuildTypes BuildConfigField (0) | 2019.08.13 |
멀티덱스 적용없이 디버그를 위한 Proguard(프로가드) 설정 방법 (0) | 2019.07.26 |
AndroidX 로 SupportLibrary 마이그레이션(Migration) 하기 (0) | 2019.07.15 |
PhoneStateListener 로 안드로이드폰 전화 상태 알아내기 #통화중 음악재생 (2) | 2019.07.13 |
Notification Channel (알림 채널) 생성해서 적용하는 방법 (0) | 2019.06.12 |
댓글