Gradle设置版本号
导入lib包时记得配置gradle
sourceSets.main {
jniLibs.srcDir 'libs'
jni.srcDirs = [] //disable automatic ndk-build call
}
recycleview添加选中效果
1.当点击item时,改变它的背景,并记录下上一个item,将上一个item变成普通背景
单例的内存泄漏
上下文对象可能是activity的,当activty被销毁时,由于单例的特性,它的上下文环境仍然被这个单例对象持有造成内存泄漏
解决:使用application context
修改媒体后,仍然内搜索到没修改之前的媒体
解决思路:查询媒体库之前先判断该文件是否存在
OkHttp捕获异常空指针问题
OkHttp在不同手机上会出现捕获不到异常问题,这时Exception会报空指针
在其他线程创建Handler时要使用Looper.prepare()
解决Gradle依赖冲突的问题
使用命令行在app下,查看重复的依赖
gradle -q mobile-app:dependencies
然后使用exclude剔除依赖
让EditText自动获得焦点
//获取光标
mEtUsername.setFocusable(true);
//确保当前view能获取焦点
mEtUsername.setFocusableInTouchMode(true);
mEtUsername.requestFocus();
在非UI线程中创建Handler
解决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.