【发布时间】:2022-01-06 00:36:02
【问题描述】:
我正在尝试修复 TransactionTooLarge 异常。我在onSaveInstanceState 中找不到任何罪魁祸首。
但是,在将内容传递给意图和捆绑包时,我在片段上看到了很多以下类型的代码。
companion object {
fun newInstance(item1: Item1, item2: Item2): MyFragment {
val fragment = MyFragment()
val args = Bundle()
args.putParcelableArrayList(ITEM_1_KEY, item1)
args.putInt(ITEM_2_KEY, item2)
fragment.arguments = args
return fragment
}
}
基本上到处都有一堆代码传递数据模型。
您如何绕过尝试将包中的较小对象传递给片段?
这些片段基本上只是拾取并使用它们。感觉很难避免通过这些。
【问题讨论】:
-
你读过Guide to app architecture吗?您应该从存储库层获取数据,而不是通过参数发送数据。
-
我已阅读架构指南。只是我正在处理的代码库没有很好的架构。本质上,大量数据是从起始屏幕从 API 获取的,然后传递给其他片段。它不会存储或缓存在任何地方。所以我一直在寻找更简单的方法来解决这个问题。
标签: android android-fragments android-bundle transactiontoolargeexception