我是 Android 开发的新手。关于什么是使上述库以最佳方式工作的最佳方法有几个问题。
目前,我的应用程序中有三个活动。MainActivity、LoginActivity 和 HomeActivity。该应用程序启动 MainActivity,它应该检查此人是否已登录。如果此人已登录,则重定向到 Home,否则重定向到 Login。
如文档中所述,我创建了一个 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 存储?
- 如果您知道任何正确实现此功能的开源代码,我很乐意查看并亲自回答这些问题。只需提供一个链接!