IT/Android
Android / 푸시알림 클릭시 PendingIntent Bundle값 전달 안되는 경우
은정21
2024. 2. 7. 15:53
반응형
푸시 알림 클릭하면 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
)
짜란