2017-08-25 37 views
0

我使用sharedpreferences保存了一些数据,如用户标识(用于提出更高的请求),接下来我有一个使用此标识的3个片段的活动。我应该在每个片段中获取数据(id)获取sharedpreference吗?或者我应该在主要活动中获得SharedPreferences并使用捆绑包传递id?来自主要活动的每个片段或包中的Android sharedpreferences?

我的问题:哪个选项速度更快,消耗的资源更少?为什么?在先进的感谢..

+0

显然比从磁盘读取的内存(ram)更快地读取。 SharedPreferences使用xml –

+0

@an_droid_dev对不起,我的英文不好,当你指的是内存RAM你参考使用捆绑?你推荐哪个选项?你能更清楚吗? – matQ

+0

是的,我的意思是捆绑。 Bundle不存储到磁盘,而是存储到内存(RAM)中。 –

回答

0

为SharedPreferences创建一个单类class

0

传递它作为一个额外的问题是,它可能无法恢复在片段重新创建。您可能需要通过在碎片破坏自身以重新实例化或任何其他不可预见的事件之前保存该值来进行预警。

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

+0

所以,你推荐我在每个片段中调用getSharedPreferences?获得ID? – matQ

+0

@matQ是的。请参阅我的第一段推理。 –