Android 来自主要 activity 的每个片段或包中的共享首选项?

Android sharedpreferences in each fragment or bundle from main activity?

我使用 sharedpreferences 保存一些数据,例如用户 ID(以向 apirest 发出请求),接下来我有一个 activity 和 3 个将使用此 ID 的片段。我应该让数据(id)在每个片段中获得 sharedpreference 吗?或者我应该在主 activity 中获取 SharedPreferences 并使用 bundle 传递 id??

我的问题:哪个选项更快且消耗的资源更少?为什么?

将它作为额外内容传递的问题是它可能无法在重新创建片段时恢复。您可能需要采取预防措施,在 Fragment 销毁自身以重新实例化或任何其他不可预见的事件之前保存该值。

考虑到这一点,从 SharedPreferences 获取 ID 是个好主意。读操作不像写操作那么昂贵(这就是为什么有异步apply()方法)。

为 SharedPreferences

创建一个单例 class