Android,传递一个parcelable数组还是从Content Provider重新获取数据?

Android, pass a parcelable array or fetch data again from Content Provider?

有点性能问题。我有一个片段,它从内容提供者那里获取一些数据并构建了一个实现 Parcelable 的对象。

MyObject object;

在另一个片段中需要此类对象的情况下,更方便的是:将对象作为

传递
args.putParcelable(ARG_KEY_OBJECT, object);

或传递对象的 ID,以便新片段可以从内容提供者处再次获取它?

args.putString(ARG_KEY_OBJECT_ID, object.getId());

此外:如果我们谈论的是这些对象的列表怎么办?

ArrayList<MyObject> list = ....
args.putParcelableArrayList(ARG_KEY_OBJECT_LIST, list);

事实证明,将对象作为 parcelable 传递更快。同时,这可能不是最方便的解决方案。例如,如果与异步加载程序结合使用,传递对象 ID 并在新片段中再次检索将非常方便,如果内容提供程序中存储的对象发生变化,异步加载程序可以触发回调。