ProcessRecord中的异常抛出启动活动{3c67ecf8080:com.example / u0a171} android.os.TransactionTooLargeException:数据包大小为572488字节
传递数据
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个项目,后跟一个例外。它可以用更少的项目工作。
答案 0 :(得分:3)
这是因为Android中的意图可以携带不超过1MB的数据。一个解决方法是放置" searchResult"在公共静态对象中
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;
希望这有帮助
答案 1 :(得分:0)
使用Intent.putParcelableArrayListExtra()代替putExtra()和getParcelableArrayListExtra()而不是getParcelableExtra()。你也可以失去演员阵容,这可能是它正在爆炸的地方