반응형
푸시 알림 클릭하면 PendingIntent를 이용하여 MainActivity로 이동하는 로직에서
intent로 전달된 Bundle값이 초기값으로만 이동되는 현상이 발생하였다.
반복적으로 푸시알림이 들어와 노티가 쌓이게 되면
bundle값이 캐싱되어 실시간으로 값 변동이 전달되지 않는다.
public static PendingIntent getActivity(Context context, int requestCode, @NonNull Intent intent, int flags, @Nullable Bundle options) {
throw new RuntimeException("Stub!");
}
PendingIntent.getActivity 함수를 보면 requestCode를 인자로 받고있다.
해당 인자에 currentTime을 넣어줘, requestCode를 Intent마다 다르게 해준다.
val bundle = Bundle()
bundle.putString("test", "test")
val intent = Intent(this, MainActivity::class.java).apply {
addFlags(FLAG_ACTIVITY_NEW_TASK)
putExtras(bundle)
}
PendingIntent.getActivity(
applicationContext, System.currentTimeMillis().toInt()/* Request code */, intent,
PendingIntent.FLAG_IMMUTABLE, bundle
)
짜란
'IT > Android' 카테고리의 다른 글
Compose / 밀어서 삭제 구현 SwipeToDismiss 사용하기 (0) | 2024.03.04 |
---|---|
Android / 안드로이드 notification Icon 적용 (0) | 2024.03.04 |
Compose / LazyClumn items 리컴포지션 일어나지 않는 경우 (상태변화 감지 안됨) (2) | 2024.02.07 |
android / 안드로이드 webview에서 window.popup() 띄우기 (0) | 2023.11.16 |
android / 안드로이드 webview history back 화면 스크롤 유지 방법 (activity 이동) (0) | 2023.10.20 |