通过一个Intent发送一个很大的列表

时间:2018-10-13 02:48:22

标签: java android

我有一个很大的列表,我想通过一个Intent发送它。 我不断得到:

FAILED BINDER TRANSACTION !!!  (parcel size = 1959784)   

我的列表中有5720个对象,我已经在线进行了一些研究,并说将列表分成较小的块。所以,我这样做了:(得到了同样的错误)。

intent.putExtra("cards1", list1);
intent.putExtra("cards2", list2);
intent.putExtra("cards3", list3);
intent.putExtra("cards4", list4);

您也可以将数据设置为单例,但是我从未处理过单例,因此我不知道执行此操作的正确步骤。

如果有人对如何通过意图传递超大数据集有见识,请告诉我!

1 个答案:

答案 0 :(得分:1)

Singleton只是只创建一次的类。即您将拥有getInstance()或类似方法仅在实例为null时才创建实例。

然后可以在应用程序类中保存对单例对象的引用(或者,如果您使用的是DI,则可以创建单例提供程序)。

您可以将List<YourItems> yourList添加到您的单例类中,并在源代码中执行类似App.getYourSingletonInstance().saveData()的操作,然后在目标中执行App.getYourSingletonInstance().getData(),之后可以对其进行清理。编码愉快。