Android异步Http客户端(loopj)和持久性Cookie存储

Android异步Http客户端(loopj)和持久性Cookie存储,第1张

概述我是 Android开发的新手.有几个问题是什么是使上述库最佳地工作的最佳方法. 目前,我的应用程序中有三个活动. MainActivity,LoginActivity和HomeActivity.应用程序启动MainActivity,用于检查此人是否已登录.如果此人已登录,则重定向到Home,否则重定向到Login. 正如documentation中提到的,我创建了一个RestClient类.我可 我是 Android开发的新手.有几个问题是什么是使上述库最佳地工作的最佳方法.

目前,我的应用程序中有三个活动. 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存储所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存