簡體   English   中英

如何創建可以在 Android 中即時保存的 SharedPreferences Helper 類

[英]How can I create a SharedPreferences Helper class that can save instantly in Android

我想創建一個可以立即保存的共享首選項類,我該怎么做? 我一直在 github 上尋找示例,但找不到

public class SharedPreferencesReceiver {
    public final static String MAIN_DATA_RECEIVER = "My_Data";

    private static SharedPreferencesReceiver myPreferences;
    private static SharedPreferences sharedPreferences;
    private static SharedPreferences.Editor editor;

    private SharedPreferencesReceiver(Context context) {
        sharedPreferences = context.getSharedPreferences(MAIN_DATA_RECEIVER, Context.MODE_PRIVATE);
        editor = sharedPreferences.edit();
        editor.apply();
    }

    public static SharedPreferencesReceiver getPreferences(Context context) {
        if (myPreferences == null) {
            myPreferences = new SharedPreferencesReceiver(context);
        }
        return myPreferences;
    }



    public void setAllDataSize(int value) {
        editor.putInt("allDataSize", value);
        editor.apply();
    }

    public int getAllDataSize() {
        return sharedPreferences.getInt("allDataSize", 0);
    }
}

主要活動

SharedPreferencesReceiver sharedPreferencesReceiver = SharedPreferencesReceiver.getPreferences(this);

int data = sharedPreferencesReceiver.getAllDataSize();

registerOnSharedPreferenceChangeListener // 我如何使用它? 我希望它立即保存

normal use;

    SharedPreferences.OnSharedPreferenceChangeListener sharedpreflistener;
    SharedPreferences sharedPreferences;


    sharedPreferences = context.getSharedPreferences(MAIN_DATA_RECEIVER, Context.MODE_PRIVATE);
    sharedpreflistener = (prefs, key) -> {
          /////
    };
    sharedPreferences.registerOnSharedPreferenceChangeListener(sharedpreflistener);

如果您想立即更改,請使用commit()而不是apply() apply()是異步的, commit()將在主線程上運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM