标签: android-sharedpreferences

Fabric BETA 添加了 TwitterAdvertisingInfoPreferences 应用程序的数据

我们使用 Fabric Crashlytics 和 BETA 来分发我们的构建,我们注意到它向应用程序数据添加了某些不需要的首选项。其中之一称为“TwitterAdvertisingInfoPreferences”,它似乎对我们的使用没有用处,可能会成为隐私问题。我们如何防止 Crashlytics 添加它?

android crashlytics-beta android-sharedpreferences crashlytics-android

4
推荐指数
1
解决办法
778
查看次数

SharedPreferences未保存在onDestroy of Service中

在活动被杀之前(OnDestroy被叫时),我保存了一些intSharedPreferences.

但我注意到的是,要保存的值需要大约一秒钟,但应用程序在销毁之前不会等待Activity.

Wait它可以在被杀之前做些什么吗?

这是我的例子:

@Override
public void onDestroy(){

    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putInt("finalXPos", finalX);
    editor.putInt("finalYPos", finalY);
    editor.commit();

    super.onDestroy();
    removeView();
}
Run Code Online (Sandbox Code Playgroud)

====================== >>编辑<< ======================

我犯了一个错误,并说这是为了一个,Activity但事实并非如此.我正在调用onDestroy一个服务,不幸的是没有onPause办法覆盖那里......

android android-service android-studio android-sharedpreferences android-ondestroy

3
推荐指数
1
解决办法
3801
查看次数

是重复使用Android共享首选项存储会影响性能吗?

我的应用程序在Android服务中使用LocationListener来更新频繁的位置.应用程序将一些位置过滤器相关数据存储在共享首选项 要求是尽可能频繁地更新位置.我在侦听器的onLocationChanged中从共享首选项中检索数据.这是我的代码

public class MyLocationListener implements LocationListener {
    public void onLocationChanged(final Location loc) {
        sharedPreferences =  PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        int filterOne = sharedPreferences.getInt("filter_data",100);
        ------
        ------
        //code to process location with filter   
        ------
        ------ 
    }
}
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,sharedPreference以重复的方式使用.

我已经尝试在onLocationChanged之外放置过滤器变量,但是当重新启动服务时,值会丢失并设置为零.

我只是想知道这是不是很好的做法?我应该使用其他选项吗?

android sharedpreferences android-sharedpreferences

3
推荐指数
1
解决办法
297
查看次数

SharedPreferences.getBoolean为默认值返回true

出于某种原因,每次返回默认值都为true.我卸载了我的应用程序并重新安装,我执行以下操作来初始化值.但由于某种原因,布尔值设置为true而不是false.

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(LoadingActivity.this);
    final int locationType = prefs.getInt(Constants.PREFS_LOCATION, 0);
    final boolean skipWhatsNew = prefs.getBoolean(Constants.PREFS_DONT_SHOW_WHATS_NEW, false);

    Log.v("loading activity : " , " " + skipWhatsNew);
Run Code Online (Sandbox Code Playgroud)

我不确定它为什么这样做,因为它之前只是将值设置为false.

我已经看过类似的问题,但没有一个帮助过,所以任何帮助都会很好,谢谢.

我已经看过的问题,

Android - 即使我存储了true,SharedPreference.getBoolean检索为false?

SharedPreferences.getBoolean每次都返回true

上面的代码也是我第一次访问它,根据我的理解,它应该设置为false,因为它是第一次创建.(关于这个问题的第一个答案提到这个,除非我错了)

共享首选项的android默认值

android android-studio android-sharedpreferences

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

SharedPreferences - OnSharedPreferenceChangeListener

我用谷歌搜索了这个,并找到了一些我觉得很困惑的答案,因为我是初学者.我正在努力实现OnSharedPreferenceChangeListener()SharedPreferences的改变.

到目前为止我的代码是:

final SharedPreferences rates_storage = this.getApplicationContext().getSharedPreferences("uk.chiraggalaiya.test", 0);
final SharedPreferences.Editor rates_storage_editor = rates_storage.edit();

Button btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        rates_storage_editor.putString("something", "something");
        rates_storage_editor.apply();
    }
});
Run Code Online (Sandbox Code Playgroud)

但是现在我不确定如何实现OnChangeListener().

java android sharedpreferences android-sharedpreferences

2
推荐指数
1
解决办法
813
查看次数

Android-如何将Firebase Uid保存到SharedPreferences?

让用户登录并获取他们的uid后,如何将他们的uid保存到SharedPreferences上,以便我可以在整个项目中访问它?这是我的代码来获取他们的uid:

FirebaseAuth auth = FirebaseAuth.getInstance();
FirebaseAuth.AuthStateListener authListener = new FirebaseAuth.AuthStateListener() {
    @Override
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
        FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
        if (firebaseUser != null) {
            String userId = firebaseUser.getUid();
            String userEmail = firebaseUser.getEmail();
        } 
    }
};
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication android-sharedpreferences

2
推荐指数
1
解决办法
3060
查看次数

Android:MVP和SharedPreferences中的存储库模式

我正在使用MVP构建应用程序,而我正在使用存储库模式.我有一个本地数据源,这是一个存储某些信息的数据库.我有一个远程数据源,在其中使用Retrofit,我发出了API请求.该请求有一个@Query,这是一个存储在SharedPreferences中的String.我想将SharedPreferences作为数据源添加到存储库,但由于远程数据源应该使用这些SharedPreferences--这将是与远程数据源不同的数据源 - 我不再认为这种体系结构如此清晰.

非常感谢您的帮助.

mvp android repository-pattern android-sharedpreferences retrofit2

2
推荐指数
1
解决办法
2553
查看次数

汇总显示 EditTextPreference 当前值

我希望能够在摘要字段中显示 EditTextPreference 的值。具体来说,我想在 PreferenceFragmentCompat 中执行此操作。

import android.support.v7.preference.PreferenceFragmentCompat;

public class SettingsFragment extends PreferenceFragmentCompat {

    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        addPreferencesFromResource(R.xml.preferences);
    }
}
Run Code Online (Sandbox Code Playgroud)

首选项文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <EditTextPreference
        android:defaultValue="DEVICE01"
        android:key="device_id"
        android:title="Device ID" />
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

我见过其他解决方案,但没有一个包括如何在 PreferenceFragmentCompat 中执行此操作。

android summary edittextpreference android-sharedpreferences

2
推荐指数
1
解决办法
2380
查看次数

Android中的SharedPreferences未在多个正在运行的进程中获取最近更新的值

描述:我有两个应用程序App1和App2.我正在使用App1在SharedPreferences中存储一些键值对.我在App2中访问相同的键值.

我启动了app1.创建值为abc的密钥.现在我将app1保留在后台并启动App2,然后将键值更改为def.

当我将app1从后台启动到前台并访问键值时.检索到的值是abc而不是更新的值def.如果我从后台杀死App2并重新启动它,那么只会更新更新的值

android multiprocessing android-sharedpreferences

2
推荐指数
1
解决办法
79
查看次数

共享首选项在应用程序被终止时不保存 StringSet(这是一项功能)

我一直在加载并将 a 保存Set<String>到 Android 上SharedPreferences,它似乎工作正常,直到我测试了杀死它application并意识到未保存字符串集。

Set<String> stringSet = sharedPreferences.getStringSet(Constants.PREF_SHOULD_LOAD_SET, null);
if (stringSet != null) {
    if (stringSet.contains(data)) {
        stringSet.remove(data);
    } else {
        stringSet.add(data);
    }
    ...
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putStringSet(Constants.PREF_SHOULD_LOAD_SET, stringSet);
    editor.apply();
}
Run Code Online (Sandbox Code Playgroud)

我尝试过的一些事情:

  • 使用提交(而不是应用)
  • 查看其他可能改变价值的地方
  • 调试并查看值是否已保存

android sharedpreferences android-sharedpreferences

2
推荐指数
1
解决办法
521
查看次数