티스토리 뷰

예전에는 이런일이 없던거 같은데 아마도 최신버전에서 발생하는 문제일겁니다.

 

이 Exception이 발생하는 이유는 Intent에 값을 무겁게 전송하거나 할 경우에 발생을 하게 되는데요.

원칙은 이렇게 값을 넣지 않으면 됩니다.

그렇죠 우리는 그렇게 당연히 개발을 안합니다.

그런데 저는 전송시에 String을 조금 넣을뿐 다른 부분은 크게 넣지 않았는데요.

이런 문제가 발생하였습니다.

 

문제는 Fragment를 잔뜩 가지고 있는... 예를 들면 ViewPager같은것이 있는 Activity가 문제가 있었습니다.

 

상태가 저장이 되어야 하는 경우가 생기는데 간혹 Activity가 종료가 되거나 기타 등등의 문제죠...

그렇게 되었을 경우에 onSaveInstanceState를 호출되면서 문제가 생기는것입니다.

 

음? 무슨 소리임...

안드로이드가 화면을 복구하려고 하면서 View의 많은 데이터들을 다 저장하려고 Bundle에 무조건 다 때려 박으면서 생기는 문제였습니다.

그냥 좀... 좋지가 않네요.

 

그래서 onSaveInstanceState를 다시 정리해야 합니다.

override fun onSaveInstanceState(outState: Bundle?) {
  super.onSaveInstanceState(outState)

  // 저장해야하는 데이터는 빼서 저장합시다.
  outState?.clear()
}

clear를 호출하여 주어서 이 값을 아주 심플하게 만들어주면 위의 에러가 사라지게 됩니다.

 

한참을 이 부분을 찾아보았으나 한국어로 도움을 적어둔곳이 없어서 제가 적습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함