工作遇到的问题

Gradle设置版本号
Paste_Image.png
导入lib包时记得配置gradle
    sourceSets.main {
        jniLibs.srcDir 'libs'
        jni.srcDirs = [] //disable automatic ndk-build call
    }

recycleview添加选中效果

1.当点击item时,改变它的背景,并记录下上一个item,将上一个item变成普通背景

Paste_Image.png

单例的内存泄漏

Paste_Image.png

上下文对象可能是activity的,当activty被销毁时,由于单例的特性,它的上下文环境仍然被这个单例对象持有造成内存泄漏

解决:使用application context

Paste_Image.png

修改媒体后,仍然内搜索到没修改之前的媒体

解决思路:查询媒体库之前先判断该文件是否存在

Paste_Image.png

OkHttp捕获异常空指针问题

OkHttp在不同手机上会出现捕获不到异常问题,这时Exception会报空指针

Paste_Image.png

在其他线程创建Handler时要使用Looper.prepare()

Paste_Image.png

解决Gradle依赖冲突的问题

使用命令行在app下,查看重复的依赖

gradle -q mobile-app:dependencies

然后使用exclude剔除依赖

Paste_Image.png

让EditText自动获得焦点

        //获取光标
        mEtUsername.setFocusable(true);
        //确保当前view能获取焦点
        mEtUsername.setFocusableInTouchMode(true);
        mEtUsername.requestFocus();

在非UI线程中创建Handler

Paste_Image.png

解决Toolbar因为VectorDrawable报错

support包要在这两个版本之上,并且

   compile 'com.android.support:support-annotations:23.4.0'
 compile 'com.android.support:support-v4:23.4.0'

TCP3次握手和4次挥手

都是为了确认客户端是否活跃。
3次握手解决了因为延时问题造成的请求的错乱。4次挥手是在断开的时候通知对端,如果在第三次挥手的时候fin和ack信息一同发送给对端,那么可以减少一次挥手。
http://blog.csdn.net/xifeijian/article/details/12777187
http://blog.csdn.net/yanxiaolx/article/details/52123628

Http的缓存策略304

Last-Modify-Time :当客户端第一次请求该url的时候成功后 同时会在报文里面添加一个Last-Modified字段表示资源请求的时间,第二次请求的时候带着该字段询问服务器该资源在这段时间后是否修改过,如果没有返回一个空,对应码是304
expires:请求的过期时间,如果下次请求同一个url时在这个时间内,使用本地缓存
etag:服务器响应的时候返回给客户端一个资源的唯一表示,当第二次请求时会通过if-non-match标签带着这个etag和
服务器的tag对比,如果没有改动返回304,使用本地缓存,否则重新响应。

http://www.jianshu.com/p/230e2e2988e0
http://www.cnblogs.com/chenqf/p/6386163.html
http://blog.csdn.net/eroswang/article/details/8302191

RxJava的使用

RxJava通过create,just来创建一个管道派发事件,这个事件所经历的流程通过doOnNext来修改。如果在中途需要将这个事件通过一个新的管道来改变成另一个事件,需要用flatMap,concatMap.

推荐阅读更多精彩内容