가끔 하늘을 보자: Android N - AlarmManager 사용시 PendingIntent 에 Parcelable 로 전달시 수신부에서 null 이 되는 현상

2017년 4월 27일 목요일

Android N - AlarmManager 사용시 PendingIntent 에 Parcelable 로 전달시 수신부에서 null 이 되는 현상

AlarmManager 사용시 PendingIntent 에 Parcelable 로 전달시 수신부에서 null 이 되는 현상

Android N 이후부터 발생(정확히 7.0 인지 7.1 인지는 모르겠다)

// send
intent.putExtra(EXTRA_DATA, xxx);
// xxx  Parcelable 구현 객체
 
// receive
final XXX xxx = bundle.getParcelable(EXTRA_DATA);
// 여기서 null 발생.

관련하여 검색을 해보면 아래 issue tracker 에도 등록이 되어 있다.

google 에서는 “Won't Fix (Intended behavior)” 로 처리.

app 에서 수정 필요.

// send
Bundle bundle = new Bundle();
bundle.putParcelable(EXTRA_DATA, xxx);
intent.putExtra(EXTRA_DATA, bundle);
 
// receive
Bundle bundle = intent.getBundleExtra(EXTRA_DATA);if (bundle != null) {
    final XXX xxx = bundle.getParcelable(EXTA_DATA);
}


참고로, 문자열이나 정수형 등은 정상적으로 전달이 된다.
only Parcelable 객체만 해당되는 것 같다.

댓글 없음:

댓글 쓰기

예약 전쟁 끝? 오늘(5월 9일) 바뀐 숲나들e 휴양림 추첨제 방식과 당첨 확률 높이는 법

  오늘 바뀐 숲나들e 추첨제 AI 도입과 당첨 확률 높이는 꿀팁! 혹시 매번 '광클'에 실패해서 눈물을 머금고 휴양림 예약을 포기하셨던 경험 있으신가요? 저도 주말마다 숲나들e 페이지에서 무한 로딩과 싸우다 결국 빈손으로 돌아섰던 기억...