티스토리 뷰
728x90
Intent 관련 글을 쓰다 흥미로운 blog 가 있어 소개한다.
내용을 보면 intent 로 전달하는 extra size 의 한계에 관한 것으로 아래와 같이 요약할 수 있다.
Size limit?
아래와 같이 Intent 에 대량의 data 를 전달하도록 하면 app 이 crash 될 것이다.
Intent intent = new Intent(this, ActivityB.class);
intent.putExtra("bytes", new byte[1000 * 1000]);
startActivity(intent);
Android 6 (API 23) 에서는 exception 발생 시 상세 정보를 알려준다.
android.os.TransactionTooLargeException: data parcel size 1002388 bytes
Android 6 이하 버전에서는 각기 다른 exception 이 발생한다.
java.lang.SecurityException: Unable to find app for caller... when publishing content providers
java.io.IOException: Address already in use
Testing
정확한 size 한계를 측정하기 위해 실험한 결과는 아래와 같다.
(단, intent 자체의 overhead 도 고려해야 되기 때문에 하단의 값이 실제 순수 data size 라고 할 순 없다.)
- API 23: 517716 bytes (520107 bytes incl. overhead);
- API 22: 517876 bytes;
- API 19: 518368 bytes;
- API 16: 518396 bytes;
- API 10: 518580 bytes;
Conclusion
Intent 사용 시 가급적 기본적인 정보만을 arguments 로 사용하고 더 많은 data 를 intent 에 담아야 한다면 아래와 같은 옵션으로 대체할 것을 권장한다.
◼ Data 를 file(임시) 로 저장하고 URI 를 활용한자. (Data 가 큰 용량일 경우 유일한 해결책일 것이다.)
◼ Data 를 Application instance 에 저장하자.
◼ Data 를 singleton 에 저장하자.
728x90
'Android > Intent' 카테고리의 다른 글
Intent 이미지 이동 (0) | 2019.03.20 |
---|---|
Intent (4) - Pending(보류) intent (0) | 2019.02.19 |
Intent (3) - Implicit(암시적) intent (0) | 2019.02.19 |
Intent (2) - Explicit(명시적) intent (2) | 2019.02.19 |
Intent (1) (0) | 2019.02.18 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- android flag activity
- 앱테크
- onContextItemSelected
- 앱테크 추천
- BroadcastReceiver
- notifyDataSetChanged
- onCreateContextMenu
- android intent
- StartService
- 안드로이드 인텐트
- RoomDatabase
- Intent
- android activity flag
- task
- WEMIX
- 무료채굴
- StringUtils
- p2e
- bindservice
- 리워드앱
- Android Service
- 채굴앱
- 리워드 어플
- 무료 채굴
- android task
- task 생성
- registerForContextMenu
- 안드로이드 서비스
- M2E
- mPANDO
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함