SharedPreferences在一个现有应用中无法正常工作.我尝试了很多不同的方法,但仍然没有工作.始终获取默认值app start.
你知道为什么吗?
String default_user = "Default_User";
SharedPreferences pref = this.getSharedPreferences("TEST_SHAREDPREF", MODE_PRIVATE);
String user = pref.getString("user", default_user);
Log.d("SHARED CHECK", user);
if (user.equals(default_user)) {
SharedPreferences.Editor edit = pref.edit();
edit.putString("user", "new_user");
boolean ok = edit.commit();
user = pref.getString("user", default_user);
Log.d("SHARED WRITE", user);
Toast.makeText(this, user + " Save process: " + ok, Toast.LENGTH_LONG).show();
} else {
Log.d("SHARED READ", user);
Toast.makeText(this, "READ SharedPrefs: " + user, Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
编辑:记录结果
该块总是返回这个不正确的应用程序,我不知道为什么
//first run
SHARED CHECK Default_User
SHARED WRITE new_user
//each time after …Run Code Online (Sandbox Code Playgroud) 不推荐使用DefaultHttpClient,ThreadSafeClientConnManager,HttpParams,HttpProtocolParams,SchemeRegistry,SSLSocketFactory,NameValuePair,HttpResponse.
我试图使用HttpsUrlConnection,但我对它们感到困惑.
protected Gson gson;
private ThreadSafeClientConnManager threadSafeClientConnManager;
private DefaultHttpClient client;
AbstractServiceApi() {
// sets up parameters
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, ENCODING);
HttpConnectionParams.setConnectionTimeout(params, 95 * 1000);
HttpConnectionParams.setSoTimeout(params, 95 * 1000);
HttpConnectionParams.setStaleCheckingEnabled(params, false);
params.setBooleanParameter("http.protocol.expect-continue", false);
// registers schemes for both http and https
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
SSLSocketFactory sslSocketFactory = SSLSocketFactory.getSocketFactory();
sslSocketFactory.setHostnameVerifier(SSLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
registry.register(new Scheme("https", sslSocketFactory, 443));
threadSafeClientConnManager = new ThreadSafeClientConnManager(params, registry);
client = new DefaultHttpClient(threadSafeClientConnManager, params);
gson = new Gson();
}
Run Code Online (Sandbox Code Playgroud)
我没有密钥库. …