context 获取多个sharepreferences

来源:互联网 发布:linux 搭建cdn 编辑:程序博客网 时间:2024/06/01 09:23

循环获取多个application的SharedPreferences

public static final String PREFS_NAME = "AndroidSSO";public String getToken(){Context otherAppsContext = null;SharedPreferences sharedPreferences = null;String token = "";for(int i = arrPackage.size() - 1;i > -1;i--){String pname = arrPackage.get(i);try {otherAppsContext = context.createPackageContext(pname, Context.CONTEXT_IGNORE_SECURITY);} catch (NameNotFoundException e) {Log.e("createPackageContext", e.toString());}sharedPreferences = otherAppsContext.getSharedPreferences(PREFS_NAME, Context.MODE_MULTI_PROCESS);token = sharedPreferences.getString(KEY_NAME, "");sharedPreferences = null;otherAppsContext = null;if(token != null && !"".equals(token)){break;}}return token;}



在一个context里获取的PREFS_NAME相同的sharedPreference始终是第一次获取的实例

如果要想不一样,只有PREFS_NAME不相同,比如使用package name 作为preference 的name


0 0
原创粉丝点击