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 并在新片段中再次检索将非常方便,如果内容提供程序中存储的对象发生变化,异步加载程序可以触发回调。
有点性能问题。我有一个片段,它从内容提供者那里获取一些数据并构建了一个实现 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 并在新片段中再次检索将非常方便,如果内容提供程序中存储的对象发生变化,异步加载程序可以触发回调。