Exception thrown launching activities in ProcessRecord{3c67ecf8080:com.example/u0a171} android.os.TransactionTooLargeException: data parcel size 572488 bytes
传递数据
Intent intent = new Intent(activity, SearchListActivity.class);
intent.putExtra(HRConstants.SEARCHLIST, searchResponse);
startActivity(intent);
获取数据
Intent intent = getIntent();
searchResponse = intent.getParcelableExtra(HRConstants.SEARCHLIST);
searchLists = searchResponse.getSearchResults();
我的minSdkVersion
是15,targetSdkVersion
是26。
响应包含 1736 个项目,后跟异常。它适用于更少的项目。
最佳答案
这是因为 Android 中的 Intent 最多只能携带 1MB 的数据。解决方法是将“searchResult”放在公共(public)静态对象中
Intent intent=new Intent(activity,SearchListActivity.class);
//intent.putExtra(HRConstants.SEARCHLIST, searchResponse);
YourActivity.SearchResponse = searchResponse;
startActivity(intent);
在 SearchListActivity 中,而不是做
getIntent.getExtras();
你可以访问你现在保存的对象
List<Search> list = YourActivity.SeachResponse;
希望对你有帮助
关于安卓 - TransactionTooLargeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47935701/