8月20日TMS开发笔记

来源:互联网 发布:查看centos系统补丁 编辑:程序博客网 时间:2024/06/08 07:33

今天终于完美解决了session这个大坑,借助okhttp果然强大,之前很多没有解决的小问题(比如请求超时不提示)都一并解决了。
感觉自己程序还有许多要改进的地方,这里的改进指的不是功能,功能已经达到了我的预期。但是程序的代码看有时都一头雾水,大量重复代码,能重用的也不知道改怎么重用,总之写法很不灵活。好在现在程序体积较小,功能也不是特别复杂,对性能的影响几乎是没有的。
来说说今天遇到的一些坑。
【Android】
1、okhttp的callback出现空指针
截图忘记截了,大概的异常就是自己重写了一个callback,命名stringcallback,方法会返回String类型的response。之前用的挺好,今天用它写了一个post大量Params的请求,无论如何都使用不了,直接callback报错,不返回请求结果程序就崩溃了,通过反复检查和实验,发现是其中一个Params的参数是空的(null),导致无法正常回调。哎,好多看上去复杂的问题其实都是粗心惹的祸,我这只菜鸟要走的路还有太长太长。
2、bmob SDK和okio冲突导致无法生成APK
之前打包的时候就遇到过一次gson出现这个错误,但是还不知道是和bmob冲突了。

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.

报错这个。今天再次出现这个问题,报的是okio错误,当即就反应过来是bmob的问题了。不过这次没有傻傻的去删除library,在网上搜索到了一个方法可以避免依赖重复,就是在引入依赖的时候这样写

compile('xx.xx.xxx.xx:1.8.4', {    exclude module: "okio"})

这样就可以避免重复依赖一个包了。
(目前发现这样做会导致bmob相关功能无法正常使用,不知道是被占用还是什么原因,明天新手机到了之后再研究下,genymotion被我手贱升级后VirtualBox打不开了。不过也不想再用genymotion,频繁卡死,需要重启才能用,决定放弃它了,真机才是王道啊)
【Web】
1、servlet(JavaScript)返回上一页
之前使用window.history.back()部分浏览器无法返回,并且不会刷新
解决方案:将window.history.back()修改为window.location.href = document.referrer
网上说这样是仅返回不刷新,但是经过测试返回后会刷新一次,不知道是不是浏览器的问题,有待验证。
2、还有一个坑,使用js进行get访问,部分浏览器会页面出错,刷新后才能正常访问,即使没这个问题我也不想使用get访问,链接中太多数据暴露总感觉不安全,明天研究下post提交数据,看看能不能顺带解决这个问题。