반응형
Android 12이상 Notification & BroadCastReceiver, Service StartActivity문제
- 안드로이드 OS버전 12이상에서 노티피케이션 받았을 때 푸시가 오지 않는 이슈가 발생하였다.
- 앱종료 되어있을 때 푸시받아서 ForegroundService도 실행해 줘야 하는데 OS버전 12이상에서 백그라운드 실행을 더 제한하여 실행이 되지 않았음.
FCM의 priority를 서버에서 High로 받으니 푸시가 오는 것을 확인하였다.
또 다른 방법은 WorkManager로 마이그레이션 하라고 되어있는데 그렇게까진 하지 않았습니다.
ForegroundService에서 notification 문제도 발생.
remoteView로 커스텀뷰를 사용하고 BroadCastReceiver로 이벤트를 전달하여 startActivity를 처리하였는데,
OS 12이상에서는 이를 제한하였다.
앱 성능과 UX를 개선하기 위해 Android 12 이상을 타겟팅하는 앱은 알림 트램펄린으로 사용되는 서비스나 broadcast receiver에서 활동을 시작할 수 없습니다. 즉, 사용자가 알림을 탭하거나 알림 내에서 작업 버튼을 탭한 후, 앱은 서비스나 broadcast receiver 내부에서 startActivity()를 호출할 수 없습니다.
https://developer.android.com/about/versions/12/behavior-changes-12?hl=ko#notification-trampolines
이를 해결하기 위해 OS 12미만과 이상으로 나누어 notification을 수정하였습니다.
OS 12미만 : 기존 RemoteView를 이용 & BroadCastReceiver로 이벤트를 받아서 startActivity처리 (NEW_TASK)
OS 12이상 : 시스템 notification(addAction)을 통하여 intent를 전달하여 화면 이동 시켰습니다.
https://proandroiddev.com/notification-trampoline-restrictions-android12-7d2a8b15bbe2
반응형
'안드로이드 > SDK version' 카테고리의 다른 글
[Android] OS 14 USE_FULL_SCREEN_INTENT 권한 & ForegroundServiceType (0) | 2024.06.24 |
---|---|
[Android] 카메라 촬영 Android10이상과 그 이하 (0) | 2024.03.18 |
registerForActivityResult가 onResume보다 늦게 호출이 되는 문제 (0) | 2023.01.11 |
[Android] Notification 오레오 대응 (0) | 2022.10.27 |
[Android] Android12에서 File에 대한 직렬화(Serialization) 문제 (0) | 2022.08.03 |