Skip to content

Commit d380bdb

Browse files
committed
解决putStringSet数据不能保存问题
1 parent 3d19e51 commit d380bdb

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

updatepluginlib/src/main/java/org/lzh/framework/updatepluginlib/util/UpdatePreference.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@
1717

1818
import android.content.Context;
1919
import android.content.SharedPreferences;
20+
import android.text.TextUtils;
2021

22+
import java.util.ArrayList;
23+
import java.util.Arrays;
2124
import java.util.HashSet;
25+
import java.util.List;
2226
import java.util.Set;
2327

2428
/**
@@ -29,15 +33,20 @@ public class UpdatePreference {
2933

3034
private static final String PREF_NAME = "update_preference";
3135

32-
public static Set<String> getIgnoreVersions () {
33-
return getUpdatePref().getStringSet("ignoreVersions", new HashSet<String>());
36+
public static List<String> getIgnoreVersions () {
37+
String txt = getUpdatePref().getString("ignoreVersions", "");
38+
if(TextUtils.isEmpty(txt))return new ArrayList<>();
39+
txt = txt.replace("[","").replace("]","");
40+
String[] result = txt.split(",");
41+
// 杜绝 java.lang.UnsupportedOperationException
42+
return new ArrayList<>(Arrays.asList(result));
3443
}
3544

3645
public static void saveIgnoreVersion(int versionCode) {
37-
Set<String> ignoreVersions = getIgnoreVersions();
46+
List<String> ignoreVersions = getIgnoreVersions();
3847
if (!ignoreVersions.contains(String.valueOf(versionCode))) {
3948
ignoreVersions.add(String.valueOf(versionCode));
40-
getUpdatePref().edit().putStringSet("ignoreVersions",ignoreVersions).apply();
49+
getUpdatePref().edit().putString("ignoreVersions",ignoreVersions.toString()).apply();
4150
}
4251
}
4352

0 commit comments

Comments
 (0)