Articles of sharedpreferences

同一应用程序的两个进程之间的共享首选项

我正在编写一个Android应用程序,其中包含UI和运行的单独进程。 我想在主进程和我的应用程序中定义的服务之间共享简单信息,该服务在不同的进程中执行。 为此,我发现使用AIDL进行进程间通信会很麻烦。 问题是:使用应用程序的共享首选项在这两个进程之间进行通信是否安全? 这是:读取和写入相同的共享首选项。 我想知道它是否真的有效。 在android开发人员中有关共享首选项的参考(http://developer.android.com/reference/android/content/SharedPreferences.html),他们声明: 注意:目前这个类不支持跨多个进程使用。 这将在稍后添加。 但我不确切地知道这是什么意思。 谢谢你的帮助

BackupManager未调用备份传输

好吧,所以我正在尝试将数据备份实施到我的应用程序中,并且一直在遵循本指南 。 我使用SharedPreferencesBackupHelper实现了我的BackupAgentHelper 。 我没有得到任何错误,并且我确定在所有首选项更改后调用dataChanged() ,但是当我测试备份(`adb shell bmgr run)时,我在LogCat中获取此信息: 07-07 12:29:00.258: V/BackupManagerService(291): Scheduling immediate backup pass 07-07 12:29:00.258: V/BackupManagerService(291): Running a backup pass 07-07 12:29:00.258: V/BackupManagerService(291): clearing pending backups 07-07 12:29:00.258: V/PerformBackupTask(291): Beginning backup of 1 targets 07-07 12:29:00.289: V/BackupServiceBinder(291): doBackup() invoked 07-07 12:29:00.289: D/PerformBackupTask(291): invokeAgentForBackup on @pm@ 07-07 12:29:00.297: I/PerformBackupTask(291): no backup data written; […]

将Bundle保存到SharedPreferences

我已经竭尽全力让我的Android游戏的所有数据都适合saveInstanceState Bundle。 总共有很多数据,包括许多Parcelable对象。 这可确保当应用程序暂停或方向更改时,重新创建的活动不会丢失任何数据。 但是,我刚刚发现savedInstanceState包显然不适合长期存储。 所以我正在寻找一种方法,我可以调整我现有的保存方法作为长期解决方案,以便始终可以恢复游戏状态。 到目前为止,我听说过2个解决方案: 1)使用savedInstanceState包进行方向更改,但在需要完全关闭应用程序时还要包含SharedPrefs。 这看起来非常适得其反,因为它使用2种不同的完全方法来做同样的事情。 此外,由于我的savedInstanceState Bundle使用Parcelable对象,因此我必须为这些对象中的每一个提供另一种方法,以使它们能够写入SharedPrefs。 基本上很多重复和难以管理的代码。 2)序列化savedInstanceState Bundle并将其直接写入文件。 我对此持开放态度,但我实际上并不知道如何去做。 但是,我仍然希望可能有更好的解决方案,因为我听说Android中的序列化“可笑/非常慢”。 如果有人能为我提供解决方案,我将非常感激。

安装应用程序时只运行一段代码

我想在我的应用程序中只运行一段代码,并且是第一次运行它时(新安装的应用程序)。 我怎么能这样做,任何人都可以解释给出一段代码。 实际上,在我的android项目中,我想创建数据库并在第一次运行时插入一些值。 在那之后,那段特定代码不应该再次运行。 如何通过SharedPreferences或Preferences实现此机制。 示例代码将更有帮助。

如何获得在Android中使用的偏好设置?

我真的在努力解决这个问题。 Java / Android新手。 我正在编写我的第一个应用程序,这是第一件让我花费超过几天寻找时间的东西。 这是设置:这是一个BAC计算器/饮料柜台: 公式用于计算BAC。 这是论坛: Bac = ((StandardDrinks / 2) * (GenderConstant / Weight)) – (0.017 * Hours); 如您所见,能够修改性别和体重将产生更准确和个性化的结果。 所以我把它们作为双打: double GenderConstant = 7.5; //9 for female double Weight = 180; 要更改这些variables,我希望此人能够进入设置并选择不同的值。 我已经设置了这些东西,但没有链接到上面显示的variables,因为我不能为我的生活弄清楚如何。 他们来了: 我按下菜单按钮,popup。 大。 我将点击“设置”。 现在popup首选项。 这是我的preferences.xml: 向前重量ListPreference: 这表明了。 这些值在res / values / arrays.xml中存储为字符串数组。 这是一个样本,只有权重的样本: 120 lbs 150 lbs 180 […]

BackUpAgentHelperClass没有被调用

我想使用扩展BackupAgentHelper的MyBackUpAgent类在Android中备份数据。 我正在使用SharedPreferences来存储数据。 我的主要活动代码是: public class MainActivity extends Activity { EditText inputtext; TextView outputtext; Button submit; public static SharedPreferences sharedprefs; static final String File_Name_Of_Prefrences =”godplay_preferences”; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); init(); sharedprefs=getSharedPreferences(File_Name_Of_Prefrences,MODE_PRIVATE); System.out.println(“value=”+sharedprefs.getString(“Input”,””)); outputtext.setText(sharedprefs.getString(“Input”,””)); submit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub populateUI(); } }); } public […]

操作栏主页按钮无法使用嵌套的PreferenceScreen

我find了一种解决方法,可以在嵌套的PreferenceScreen上实际启用ActionBar主页按钮…但是它不会在我的PreferenceActivity中调用OnOptionsItemSelected。 有人知道在嵌套的PreferenceScreen上实际使用主页按钮的方法吗? 这里修改第35条: http://code.google.com/p/android/issues/detail?id=4611 @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { super.onPreferenceTreeClick(preferenceScreen, preference); if (preference!=null) if (preference instanceof PreferenceScreen) if (((PreferenceScreen)preference).getDialog()!=null) ((PreferenceScreen)preference).getDialog().getActionBar().setHomeButtonEnabled(true); return false; }

Android:在共享首选项中存储身份validation令牌是一个好主意吗?

我有一个与服务器通信的应用程序。 当用户登录到应用程序时,在服务器上创建身份validation令牌并将其存储在应用程序的SharedPreferences中,并且每当应用程序从Web服务请求数据时,validation身份validation令牌。 我的问题是,将身份validation令牌存储在SharedPreferences是否安全? 我问,因为具有root权限的用户可以访问首选项,提取令牌并使用它。 无论如何,在这方面有更多的安全吗?

如何遍历所有Bundle对象

我试图创建一个辅助方法,以一般的方式迭代所有Bundle对象。 “通用”我的意思是: 不需要知道作为parameter passing的Bundle中对象的名称(键)。 如果将来另一个成员(密钥)添加到Bundle中,则无需更改。 到目前为止,我想出了以下大纲来实现这一目标: private void bundleToSharedPreferences(Bundle bundle) { Set keys = bundle.keySet(); for (String key : keys) { Object o = bundle.get(key); if (o.getClass().getName().contentEquals(“int”)) { // save ints } else if (o.getClass().getName().contentEquals(“boolean”)) { // save booleans } else if (o.getClass().getName().contentEquals(“String”)) { // save Strings } else { // etc. } } } […]

通过静态方法访问SharedPreferences

我有一些信息存储为SharedPreferences。 我需要从外部的Activity(从域模型类中)访问该信息。 所以我在Activity中创建了一个静态方法,我只用它来获取共享首选项。 这给了我一些问题,因为显然不可能从静态方法调用方法“getSharedPreferences”。 这是eclipse给我的信息: Cannot make a static reference to the non-static method getSharedPreferences(String, int) from the type ContextWrapper 我尝试使用Activity实例来解决这个问题,如下所示: public static SharedPreferences getSharedPreferences () { Activity act = new Activity(); return act.getSharedPreferences(“FILE”, 0); } 此代码提供空值exception。 有解决方法吗? 通过尝试这样做,我会进入一个android-code气味? 提前致谢。