Android如何保存首选项和应用内账单

Android如何保存首选项和应用内账单,android,in-app-purchase,sharedpreferences,Android,In App Purchase,Sharedpreferences,我有一个IAB,当购买成功时,它调用以下代码: private void updateInterface() { if (mIsPremium) { displayAd(false); savePreferences(null); } else { displayAd(true); } } 我的首选项是: private void savePreferences(String String) { S

我有一个IAB,当购买成功时,它调用以下代码:

private void updateInterface() {

    if (mIsPremium) {

        displayAd(false);
        savePreferences(null);
    } else {

        displayAd(true);

    }
}
我的首选项是:

    private void savePreferences(String String) {
    SharedPreferences settings = getSharedPreferences(
            Constants.PREFERENCES_FILE, Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = settings.edit();
    editor.putString(Constants.ANTI_ADS_KEY, "prde");
    editor.commit();
    editor.clear();
}
public static boolean hasValidKey() {
    SharedPreferences settings = CustomApplication.getAppContext()
            .getSharedPreferences(Constants.PREFERENCES_FILE,
                    Context.MODE_PRIVATE);
    String key = settings.getString(Constants.ANTI_ADS_KEY,
            Constants.ANTI_ADS_VALUE);
    if (key != null
            && ((key.trim().startsWith("pR+") && key.trim()
                    .endsWith("de@p")) || (key.trim().startsWith("pr") && key
                    .trim().endsWith("de")))) {
        return true;
    }
    return false;
}
在UTIL中,我有以下内容:

    private void savePreferences(String String) {
    SharedPreferences settings = getSharedPreferences(
            Constants.PREFERENCES_FILE, Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = settings.edit();
    editor.putString(Constants.ANTI_ADS_KEY, "prde");
    editor.commit();
    editor.clear();
}
public static boolean hasValidKey() {
    SharedPreferences settings = CustomApplication.getAppContext()
            .getSharedPreferences(Constants.PREFERENCES_FILE,
                    Context.MODE_PRIVATE);
    String key = settings.getString(Constants.ANTI_ADS_KEY,
            Constants.ANTI_ADS_VALUE);
    if (key != null
            && ((key.trim().startsWith("pR+") && key.trim()
                    .endsWith("de@p")) || (key.trim().startsWith("pr") && key
                    .trim().endsWith("de")))) {
        return true;
    }
    return false;
}

那么,上面的所有代码对您来说都是正确的吗?

您不应该将其称为:

editor.clear();

它将清除所有已提交的更改。

此问题没有明确的方向。换句话来说,“这对你来说是正确的”。