Android 在多个实例中保存共享优先级

Android 在多个实例中保存共享优先级,android,sharedpreferences,Android,Sharedpreferences,我希望能够以一种方式保存我的用户会话或共享引用,即如果用户杀死应用程序,而您启动它,它将如下所示 按钮一=使用空白首选项启动活动 按钮2=保存的首选项会话列表,单击“全部”后,将其放入启动活动 这可能吗?如果可能的话,我该怎么做 谢谢大家! 这可能吗 我会说是的,这完全取决于你的意思 如果是这样的话,我该怎么做呢 有两个不同的函数来执行类似的操作,具体取决于您想要什么。您可以通过单击按钮2获得存储的所有首选项的映射,或者使用特定字符串(如“用户名”或类似于getStringSet()的首选项集。

我希望能够以一种方式保存我的用户会话或共享引用,即如果用户杀死应用程序,而您启动它,它将如下所示

按钮一=使用空白首选项启动活动

按钮2=保存的首选项会话列表,单击“全部”后,将其放入启动活动

这可能吗?如果可能的话,我该怎么做

谢谢大家!

这可能吗

我会说是的,这完全取决于你的意思

如果是这样的话,我该怎么做呢

有两个不同的函数来执行类似的操作,具体取决于您想要什么。您可以通过单击
按钮2
获得存储的所有首选项的
映射,或者使用特定
字符串(如“用户名”或类似于
getStringSet()
的首选项集。玩玩它提供的功能,看看它是否能满足您的需求

也不要考虑这些功能的警告

请注意,您不能修改此调用返回的set实例。如果您这样做,则无法保证存储数据的一致性,也根本无法修改实例


是的,您可以这样做,如果您只需要存储一些会话变量,那么使用SharedReferences是很好的。但如果更多,则选择数据库

清除应用程序中的SharedReferences您需要执行以下操作:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(activity);
Editor editor = settings.edit();
editor.clear();
editor.commit();
为了阅读首选项,您可以保留一个共享的引用,其中包含seisions的计数。保存序言时,始终使用字符串session1、session2、session3等进行保存。因此,在基于计数访问它们时,准备一个循环并形成字符串,访问所有会话变量并显示它们

我不建议您为SharedReference执行getAll()的原因是,您可以在SharedReference中保存一些其他内容。因此,通过自己形成字符串,在读取时,您可以只获取会话,而不获取保存在SharedReference中的其他数据


我希望您理解我的意思

如果您打算提供这么多已保存会话的选项,那么数据库在管理方面可能会更容易。您如何定义“会话”?重新创建“会话”需要保存哪些数据?如果有多个数据要考虑,那么作为A- C建议,一个数据库可能比使用<代码> SydPrase更合适。为什么你把答案作为代码块张贴,还评论你自己的答案而不是编辑它?@苏希尔所以我“可以”保存“保存的Pref”的每一个实例。使用会话的字符串键进入数组?共享首选项没有多个实例。应用程序中只有一个实例。每次将会话保存到SharedReference之前,您都应该为会话创建一个字符串。因此,建议您可以将会话字符串名称创建为session1,session2etc@Sushil:“共享首选项没有多个实例。”-只有在使用
GetDefaultSharedReferences(上下文上下文)
getPreferences(int模式)
时才是如此。使用
getSharedReferences(字符串名,int模式)
时,一个名为.XML的唯一XML首选项文件用于存储首选项。@Squonk。。我同意。我的句子格式不正确。在他的情况下,他不需要多次共享参考。在他的情况下,应用程序的一个共享参考就足够了。