1717
1818import android .content .Context ;
1919import android .content .SharedPreferences ;
20+ import android .text .TextUtils ;
2021
22+ import java .util .ArrayList ;
23+ import java .util .Arrays ;
2124import java .util .HashSet ;
25+ import java .util .List ;
2226import 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