美文网首页android进阶Android知识android成神之路
安卓之项目实战经验总结(1)

安卓之项目实战经验总结(1)

作者: 大白栈 | 来源:发表于2016-09-26 11:14 被阅读266次

    1、登录cookie存取问题
    一般我们登录都是用token做网络通信令牌,但是我们还是使用cookie登录和获取数据等相关操作,不过里面有个小问题,就是切换账号的时候,cookie为什么要清掉呢?如果我们用之前的用户的cookie和新用户的账号、密码进行登录的话,服务器会接收,但是返回数据有误,原因是:我们在第一次请求服务器的时候,服务器会把cookie放在head信息返回给我们,字段为"Set-Cookie",我们接收之后对它进行存储,第二次请求(之后的请求都一样),服务器还是会把cookie放在head信息返回给我们,字段为"Cookie",也就是说,cookie我们只需要设置一次,之后的网络请求都不需要再设置了,回到我们刚才的问题,如果我们切换账号的时候,不清除cookie的话,服务器的返回字段为"Cookie",也就是已经设置了,但是是之前用户的,所以服务器返回的数据会错误。
    2、极光推送在APP退出之后应该做什么呢?
    一般我们在退出登录的时候,都会清除极光的tag和别名,(不明白什么是tag和别名的去极光的官网看看),为的就是在退出登录之后,不会收到该用户的相关推送,但是,我们在实战的时候发现,退出的时候,有时候还是会收到推送,下面就是我现阶段的解决方法,大神们有好的解决方案,麻烦想告知,谢谢!清除极光的tag和别名用的是JPushInterface.setAliasAndTags(SettingActivity.this, "", tagList, new TagAliasCallback() {}里面第一个参数为当前对象,第二个为别名(我们在这置为空),第三个为tag,(我们在这置为空),第四个是回调,如果回调成功我们才做一些清理工作,如清除Activity等
    Set<String> tagList = new HashSet<>(); JPushInterface.setAliasAndTags(SettingActivity.this, "", tagList, new TagAliasCallback() { @Override public void gotResult(int responseCode, String arg1, Set<String> set) { if (responseCode == 0) { customProgressDialog.dismiss(); JPushInterface.clearAllNotifications(SettingActivity.this);//清掉极光通知栏信息 SPUtil.clear();//退出清除所有缓存 finishActivities(); //清除所有Activity } else { customProgressDialog.dismiss(); UIUtils.showToastSafe("当前网络信号差,请重试"); } }});
    3、APP清除缓存的功能
    现在很多APP会把图片、数据、视频等数据缓存到本地,有时候我们需要给用户选择性的清除,我用的是定时发送通知去检测要清除的文件的大小,如果为0K,说明为已经清理完毕,下面就是我实战的经验:
    //点击清除按钮,弹个对话框 mCustomProgressDialog.show(); //开始清除 DataCleanManager.clearAllCache(SettingActivity.this); //定时发通知 mHandler.postDelayed(sRunnable, 200); ....................
    private final Runnable sRunnable = new Runnable() { @Override public void run() { //检测文件大小 getSizeOfFlie(); }}; public void getSizeOfFlie() { try { //判断文件大小是否等于0K if (DataCleanManager.getTotalCacheSize(SettingActivity.this).equals("0K")) { mCustomProgressDialog.dismiss(); UIUtils.showToastSafe("已清空缓存"); mHandler.removeCallbacks(sRunnable); } else { mHandler.postDelayed(sRunnable, 200); } } catch (Exception e) { e.printStackTrace(); }}
    清除缓存工具类地址:http://blog.csdn.net/n3562141/article/details/51495992

    相关文章

      网友评论

        本文标题:安卓之项目实战经验总结(1)

        本文链接:https://www.haomeiwen.com/subject/eihqyttx.html