相关疑难解决方法(0)

如何在Android中使用SharedPreferences来存储,获取和编辑值

我想存储一个时间值,需要检索和编辑它.我SharedPreferences该怎么用呢?

android sharedpreferences

599
推荐指数
20
解决办法
62万
查看次数

getDefaultSharedPreferences和getSharedPreferences之间的区别

Android getDefaultSharedPreferencesgetSharedPreferencesAndroid有什么区别?有人可以解释一下吗?

android android-preferences sharedpreferences

217
推荐指数
2
解决办法
8万
查看次数

如何使用Android Studio查看共享首选项文件?

我正在使用共享首选项来存储我的应用程序的某些值.我想看看信息实际存储在手机上的文件.我在Eclipse上找到了很多方法,但是我在Android Studio上进行调试.我的手机扎根了.我读到有root权限对于读取这些类型的文件很重要.如果没有办法,那么我将查找如何通过我的程序访问信息然后将其输出到log cat.但是,希望我可以直接在手机上查看文件,因为它更简单.谢谢.

android sharedpreferences android-studio

85
推荐指数
9
解决办法
9万
查看次数

不同应用程序的Android共享首选项

我一直在开发一个Android应用程序,它通过共享首选项文件与设备上安装的其他应用程序进行交互.

此文件创建为MODE.WORLD_READABLE,并且每个已安装的应用程序都有自己的文件,该文件具有公共定义的名称和属性(该特定属性的值的更改).

例如,AppA和AppB应该每个都有一个名为"app_shared_file.xml"的共享文件,其属性为"property_shared_file".

从我的应用程序,我想首先访问此文件并读取该属性值,并根据该结果我想创建/更新我的.

尽管如此,我在实现这一目标方面遇到了一些问题.在Android文档中,我看到:

检索并保存首选项文件"name"的内容,返回SharedPreferences,您可以通过它来检索和修改其值.只有一个SharedPreferences对象实例返回给任何相同名称的调用者,这意味着他们一旦完成就会看到彼此的编辑.

在阅读其他应用程序共享首选项文件后,当我尝试创建/更新我的系统而不是编辑我的时候正在使用我之前读过的那个.如果相反,我开始更新我的并稍后阅读其他应用程序 - 而不是阅读另一个应用程序,正在访问的是我的.

有什么想法吗?

我用来读取共享pref的代码是[其中packageName是另一个app pckg]:

Context con = context.createPackageContext(packageName, Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences pref = con.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_WORLD_READABLE);
pref.getBoolean(SHARED_PREF_PROP, false);
Run Code Online (Sandbox Code Playgroud)

我用于在app shared pref中编写的代码是:

SharedPreferences prefs= getSharedPreferences(SHARED_PREF_NAME, context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(SHARED_PREF_PROP, value); 
editor.commit();
Run Code Online (Sandbox Code Playgroud)

提前致谢.

android sharedpreferences

9
推荐指数
1
解决办法
8901
查看次数

当应用程序强制关闭或设备重新启动时,共享首选项会重置数据

我正在开发中,我在存储应用usernamepasswordSharedPreferences.所有的东西都适合我,存储以及检索值.但我发现当我重新启动设备或应用程序强制关闭时,存储的值将SharedPreferences被重置.当我再次启动我的应用程序时,我在SharedPreferences键中获得空值.在这里,我正在做什么来存储值:

SharedPreferences emailLoginSP;

emailLoginSP = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
emailLoginSP.edit().putString("prefEmailId", email_text).commit();
emailLoginSP.edit().putString("prefUserId", userIDToken).commit();
emailLoginSP.edit().putString("prefAccess_token", accessToken).commit();

Intent i = new Intent(LoginWithEmail.this,UserInfoActivity.class);
i.putExtra("acess_token", accessToken);
i.putExtra("user_id", userIDToken);
i.putExtra("emailID", email_text);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

而且,这就是我正在重温它的方式:

SharedPreferences emailLoginSP = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

loginEmail = emailLoginSP.getString("prefEmailId", null);
loginUserId = emailLoginSP.getString("prefUserId", null);
loginAccessToken = emailLoginSP.getString("prefAccess_token", null);
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切正常.我再次说明我的问题,当我强制关闭或重启我的设备时,我得到空值.我们可以将它永久存储在应用程序内存中吗?或者,我在这里做错了什么?

任何帮助将不胜感激.

android sharedpreferences

9
推荐指数
2
解决办法
3万
查看次数

Preferences .xml文件应该放在哪里?

当我创建首选项xml文件时(通过右键单击项目名称,选择"|新建|其他| Android XML文件",然后从"新建Android XML文件"对话框中的"资源类型"微调器中选择"首选项"),它将它保存在res/xml而不是res/layout中.这是应该的吗?

android android-preferences android-layout

5
推荐指数
2
解决办法
5645
查看次数

在Android上保留OAuth客户端凭据的位置

我有一个通过OAuth安全性与WebAPI交互的Android应用程序.为了获取访问令牌,我需要在请求的标头中发送OAuth凭证(即客户端ID和客户端密钥).我的问题是,我应该在哪里保留这两个值(客户端ID和客户端密码),以便应用程序在需要时使用它.目前,我刚刚在通话中对其进行了硬编码.将它们保存在strings.xml文件中是否安全?

android oauth

5
推荐指数
2
解决办法
1656
查看次数

在Android SharedPreferences中存储数据需要多长时间?

我已经查了很多关于不同数据存储方法的内容,并且我试图弄清楚Android SharedPreferences在哪个方面是不对的.

我意识到字符串的限制是非常庞大的(~2B),所以存储它不是一个记忆问题,我对"最佳实践"更加好奇.

我将在这个应用程序的生命周期中有5到15个"更新".我希望每部手机都能保存这些更新.更新将有一个简短的标题,从句子到两个段落.

我意识到通常存在可扩展性的问题,但这里没有关注.这是一个每年使用一个周末的应用程序.

我不需要搜索或操纵这些,只需要存储它们的能力.

我可以使用GSON将它们全部存储为JSON对象,但是对于首选项来说,这个字符串太大了吗?或者它是否正常,因为内部存储(作为CSV或其他东西)或数据库将是矫枉过正?

storage android sharedpreferences

0
推荐指数
1
解决办法
1543
查看次数