草庐IT

Sharedpreferences

全部标签

android - SharedPreferences apply() 和 commit() 什么时候会失败?

我正在使用SharedPreferences将用户数据保存在我的应用程序中。我知道commit()和apply()方法之间的区别,但我注意到如果commit()返回true新值已成功写入持久存储,而apply()没有。可能导致commit()方法返回false或apply()方法失败的原因是什么? 最佳答案 我们来看看thesourcecodeforcommit():publicbooleancommit(){MemoryCommitResultmcr=commitToMemory();SharedPreferencesImpl.t

Android 内部存储 - 有什么限制?

1)我们的Android应用程序会将数据存储在内置的SQLite数据库中。我看到数据库可以抛出android.database.sqlite.SQLiteFullException,但是API中没有确切的信息是什么限制。任何人都可以告诉数据库的大小限制是多少才能避免进入SQLiteFullException吗?我假设DB会将数据存储在设备的内部存储器中(相对于SDCard)。我对吗?鉴于SQLite数据库只是一个文件,数据库大小可能受到可用内部存储空间的限制。再次-我是对的吗?如果是,那么Android上的内部存储大小是多少?如何检测?它是否因设备型号或操作系统版本而异?2)我们还需要

android - SharedPreferences Editor commit 花费太多时间

我尝试使用PreferenceActivity进行配置Activity...我找到了一些有效的例子,比如“WiFi高级配置编辑器”和“Wifi配置编辑器专业版”但是我写的代码在editor.commit()行等待10-15秒...它一定很简单,但我想不通。这是简短的代码;...SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(v.getContext());prefs.registerOnSharedPreferenceChangeListener(ClassConfig.this);SharedP

Android 共享首选项初始化

开始时在共享首选项中设置一些默认值通常会很好。有没有一种从xml文件或属性文件初始化它们的好方法?寻找最好的方法来做到这一点。谢谢。 最佳答案 阅读这个问题的答案:AndroidPreferences:Howtoloadthedefaultvalueswhentheuserhasn'tusedthepreferences-screen? 关于Android共享首选项初始化,我们在StackOverflow上找到一个类似的问题: https://stackove

android - 使用 AppWidgetManager 的 updateAppWidgetOptions 方法来存储每个小部件的自定义选项

我有三个关于AppWidgetOptions的问题:1)如果我想向应用小部件的选项添加选项值,我应该始终首先使用getAppWidgetOptions(int)检索小部件选项,然后操纵Bundle,否则当我调用updateAppWidgetOptions(intappWidgetId,Bundleoptions)时,我会覆盖其他现有选项,对吧?2)这个选项在重启后仍然有效吗?也就是说,如果我在配置Activity中存储一些与小部件相关的信息,我确定即使在重新启动后我也能找到它们吗?系统是否自动将它们保存在某个地方?3)这比在共享首选项中存储小部件选项更快吗?

java.lang.IllegalStateException : Orca SharedPreferences used before initialized 错误

我已经在我的应用程序中集成了适用于androidv3.5的FacebookSDK,并包含了安装发布代码:com.facebook.AppEventsLogger.activateApp(this);但是我收到了很多由以下原因引起的崩溃:Settings.javaline418com.facebook.Settings.getAttributionId它抛出异常:java.lang.IllegalStateException:OrcaSharedPreferencesusedbeforeinitialized我一直在尝试重现崩溃,但没有成功。有人遇到过这个问题吗?我只想知道是否:/*On

android - 使用 `SharedPreferences` 存储身份验证 token

我在我的服务器上使用基于token的身份验证机制。当用户通过Android应用程序登录时,服务器会返回需要随每个后续请求一起发送的token。我需要将该值存储在设备上。由于token是一个简单的字符串,我想我会使用SharedPreferences来保存该值。当应用程序在MyApplicationextendsApplication中启动时,我在SharedPreferences中查询此token并将其作为全局状态保存在MyApplication中,以便每个Activity都可以访问它当它向服务器发送请求时。这种方法可行吗?如果不是,它有什么严重的缺点?如果这是个坏主意,还有什么替代方

Android:修改另一个应用的SharedPreferences

我正在尝试编写必须读取、修改和保存其他应用程序共享首选项中的某些设置的应用程序(data/data/package_name/shared_prefs/file.xml)。此应用程序不是我的,我有用于测试的root设备。我应该向list添加什么android权限以及如何访问和修改此文件?我知道SharedPreferences对每个App/APK都是唯一的,但我需要在root模式下修改它。我有修改sdcard上的xml文件的工作代码,但是当我将路径更改为"data/data/package_name/shared_prefs/file.xml"时,它给了我一个异常和消息androido

Android - 保存应用程序状态

我想保存应用程序状态以便能够在另一次启动后恢复它。使用方法onSaveInstanceState并将其保存到Bundle或使用SharedPreferences哪个更好?谢谢 最佳答案 这取决于你的Intent。如果要确保在配置更改和其他重启事件期间保存状态,使用onSaveInstanceState()只是一个合理的解决方案。如果您的目标是在应用程序的生命周期之外真正保存应用程序的状态,您应该考虑使用SharedPreferences或者甚至使用数据库。 关于Android-保存应用程

使用 SharedPreferences 的 Android 小部件配置

我想让用户在启动我正在处理的主屏幕小部件时定义用户名。但是我在我的小部件中存储和访问这个值时遇到了麻烦。我现在所做的是创建一个配置Activity,该Activity在创建小部件时启动。因此我在list文件中定义如下(我也在widgetprovider.xml中定义了它):ConfigurationActivity然后允许用户输入用户名,该用户名将存储在Widget的SharedPreferences中:SharedPreferences.Editorprefs=context.getSharedPreferences(PREFS_NAME,MODE_WORLD_READABLE).e