我是Android開發新手。關於如何使上述庫最佳工作的最佳方式,有幾個問題。Android異步Http客戶端(loopj)和持久Cookie存儲
目前,我在我的應用程序中有三個活動。 MainActivity,LoginActivity和HomeActivity。該應用程序啓動MainActivity,該應用程序檢查該用戶是否已登錄。如果該用戶已登錄,則重定向至Home,否則重定向至登錄。
正如documentation所述,我創建了一個RestClient類。我可以在我的LoginActivity中成功發出請求並獲得響應。這是我的登錄代碼。
public void login() {
RequestParams params = new RequestParams();
params.put(AUTH_PARAMETER_EMAIL, mEmail);
params.put(AUTH_PARAMETER_PASSWORD, mPassword);
RestClient.setCookieStore(new PersistentCookieStore(this));
RestClient.post(AUTH_URL, params, new JsonHttpResponseHandler() {
@Override
public void onFinish() {
showProgress(false);
}
@Override
public void onSuccess(JSONObject response) {
String response_status = null;
try {
response_status = response.getString(AUTH_RESPONSE_STATUS);
} catch (JSONException e) {
Toast.makeText(LoginActivity.this,
"ERROR: " + e.toString(), Toast.LENGTH_LONG).show();
Log.e(TAG, e.toString());
}
if (response_status.equals(AUTH_SUCCESS_STATUS)) {
finish();
} else {
mPasswordView
.setError(getString(R.string.error_incorrect_password));
mPasswordView.requestFocus();
}
}
@Override
public void onFailure(Throwable e, String content) {
Toast.makeText(LoginActivity.this, "ERROR: " + e.toString(),
Toast.LENGTH_LONG).show();
Log.e(TAG, e.toString());
}
});
}
問題
- 這將創建一個新的cookie存儲的請求 每次做出。我應該把它放在什麼位置才能創建一次?應該 我把它放在MainActivity的onCreate,然後將它分配給一個 全局變量?這是最佳做法嗎?
- 在我的MainActivity中,如何檢查從服務器發送的會話cookie是 ?我知道這是在共享首選項,但我怎麼能得到它?該文檔沒有說明將存儲在SharedPreferences中的變量將會是哪個變量 。
- 當我需要註銷某人時,我是否刪除了共享首選項或刪除了Cookie存儲或兩者?它們是否自動保持同步?
- 當應用程序重新啓動時,如何從sharedpreferences中保存的數據初始化cookie存儲?
- 如果您知道任何開源代碼能正確實現這一點,我很高興看到它並自己回答這些問題。只需提供一個鏈接!
我意識到我在這裏的理解水平真的很低所以請和我一起袒護! :)
嘿,你在這裏提到的非常有趣的事情。我在哪裏可以註銷'.clear'? – Phil