SharedPreferences类允许以简单类型(bool、字符串等)格式保存应用程序数据。通常它们不会被移除,它们应该会持续存在,但它们是否会被移除以防万一应用程序被更新/移除或应用程序缓存被清除? 最佳答案 当您从设备应用程序管理器执行清除数据或卸载您的应用程序时,SharedPreference的文件将被删除。SharePreferences存储在里面/data/data/packagename/shared_prefs/prefsname.xml除非您的list中有android:allowBackup="true"。在那
我打算做这样的事情:privatestaticSharedPreferencessharedPreferencesInstance;publicstaticSharedPreferencesgetSharedPreferences(finalContextcontext){if(context==null)returnsharedPreferencesInstance;if(sharedPreferencesInstance==null)sharedPreferencesInstance=context.getApplicationContext().getSharedPreferen
我已多次使用共享首选项,但出于某种原因,更改未保存在我正在测试的新应用中。这是重要代码的fragment:SharedPreferencessp=getSharedPreferences(getString(R.string.key_preferences),MODE_PRIVATE);Setwidgets=sp.getStringSet(getString(R.string.key_widgets),(newHashSet()));widgets.add(name+""+Integer.toString(appWidgetId)+""+address);sp.edit().putSt
一组关于SharedPreferences的问题,我一直在寻找:什么,为什么,什么时候?它在内部是如何工作的?使用它的最佳实践?这里只回答了其中的一些问题。这就是我进行一些调查和测试的原因。因为我已经回答了我自己的问题,所以我决定与其他人分享答案。 最佳答案 我写了一篇小文章,也可以找到here.最佳实践:SharedPreferencesAndroid提供了多种存储应用程序数据的方式。其中一种方法将我们引向SharedPreferences对象,该对象用于将私有(private)原始数据存储在键值对中。所有逻辑仅基于三个简单的类:
我第一次使用sharedPreferences,我似乎无法克服这个错误。我有一个子菜单应该允许用户设置他们的区域。这应该会打开正确的区域Activity,并在再次打开应用程序时存储和调用。我一直在兜圈子很多次,所以有些代码会有点奇怪。我一直专注于从美国(默认)更改为英国。在DDMS中我得到这个:05-1311:22:39.344:ERROR/AndroidRuntime(960):java.lang.NullPointerException05-1311:22:39.344:ERROR/AndroidRuntime(960):atandroid.content.ContextWrapp
我正在开发Android应用A,以便另一个B可以读取A的SharedPreferences。在android.content.Context的javadoc中,关于MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE的描述如下:ThisconstantwasdeprecatedinAPIlevel17.Creatingworld-writablefilesisverydangerous,andlikelytocausesecurityholesinapplications.Itisstronglydiscouraged;instead,application
编辑:下面描述的问题是由于一个非常特殊的设备问题引起的,而不是由任何与编码相关的问题引起的。我有一个preferenceActivity,其中有很多checkBoxPreferences。checkBoxPreference假设保存默认的共享首选项文件,然后在我打开应用程序时再次调用以更新UI。这并没有像预期的那样发生。如果我关闭应用程序并重新打开它,我的值将保持原样,但如果我使用任务管理器结束应用程序,或者如果我重启手机(当应用程序未运行时),则会调用defaultValues再次。因此,我在我的onResume()中创建了一个SharedPreference来测试它。SharedP
现在我可以运行下面的行来清除我的应用程序中的首选项。但是有没有办法在我的代码之外做到这一点?我可以从Eclipse或模拟器运行的命令来完成同样的事情?SharedPreferencessettings=getSharedPreferences(PREF_FILE_NAME,0);Editore=settings.edit();e.clear();e.commit(); 最佳答案 作为使用shell的替代方法,您还可以通过进入DDMS从Eclipse中删除文件。透视,然后选择FileBrowser选项卡(默认位于右上面板)并导航至/d
开篇废话开局一张图,说明一切问题。MMKV优势可以看出MMKV相比SP的优势还是比较大的,除了需要引入库,有一些修改上的成本以外,就没有什么能够阻挡MMKV了。当然了,MMKV也有着不广为人知的缺点,放在最后。MMKV还直接支持了将SharedPreferences的历史数据转换为MMKV进行存储,只不过需要注意一点,不可回退。且听我慢慢道来SP具体存在哪些问题容易anr,无论是commit、apply、getxxx都可能导致ANR。SharedPreferences本身是一个接口,其具体的实现类是SharedPreferencesImpl,而Context的各个和SharedPreferen
1.SharePreferencesSharedPreferences:一个轻量级的存储类,特别适合用于保存应用配置参数。(是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下)image.pngSharedPreferences使用:1.保存数据:保存数据一般分为以下步骤:使用Activity类的getSharedPreferences方法获得SharedPreferences对象;使用SharedPreferences接口的edit获得SharedPreferences.Editor对象;通过SharedPreferences.Editor接口的putX