目前,我的应用程序中有三个活动. MainActivity,LoginActivity和HomeActivity.应用程序启动MainActivity,用于检查此人是否已登录.如果此人已登录,则重定向到Home,否则重定向到Login.
正如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,Toast.LENGTH_LONG).show(); Log.e(TAG,e.toString()); } }); }
问题
>每次请求时都会创建一个新的cookie存储区
制作.我应该把它放在哪里,以便它只创建一次?应该
我将它放在MainActivity的onCreate中,然后将其分配给
全局变量?这是最好的做法吗?
>在我的MainActivity中,如何检查会话cookie
从服务器发送?我知道这是共享偏好,但如何
我能得到它吗?文档没有说明它将是什么变量
存储在SharedPreferences下.
>当我需要注销某人时,是否删除共享首选项或
擦除cookie商店或两者?它们会自动保持同步吗?
>当应用重启时,如何从共享偏好中保存的数据初始化cookie存储?
>如果您知道任何正确实现此功能的开源代码,我会很高兴看到它并自己回答这些问题.只需提供一个链接!
1)cookie存储从共享首选项初始化.所以每次需要时都要创建一个新的.一定要每次都使用相同的上下文.我正在使用getApplicationContext()
2)和4)饼干商店为您提供全部服务.只需使用与之前创建的相同的上下文创建一个新的.只要您保持一致,cookie就会正确初始化.
3)cookie存储保持共享首选项及其本地属性同步,因此只需调用(new PersistentcookieStore(getApplicationContext())).clear();
我的守则
RestClIEnt.java
public static voID setcookieStore(PersistentcookieStore cookieStore) { clIEnt.setcookieStore(cookieStore);}
LoginActivity.java
RestClIEnt.setcookieStore(new PersistentcookieStore(getApplicationContext()));
MainActivity.java
private voID loginRouter() { PersistentcookieStore mcookieStore = new PersistentcookieStore( getApplicationContext()); List<cookie> cookies = mcookieStore.getcookies(); for (cookie c : cookies) { if (c.getname().equals("session")) { startActivity(new Intent(this,HomeActivity.class)); finish(); } } launchSplashPage();}总结
以上是内存溢出为你收集整理的Android异步Http客户端(loopj)和持久性Cookie存储全部内容,希望文章能够帮你解决Android异步Http客户端(loopj)和持久性Cookie存储所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)