摘要:
大家都知道谷歌现在已经不维护volley框架,为什么现在还要分析volley源码呢。 首先,volley框架的设计思想是非常值得借鉴,翻下当下个人开源 的一些网络框架,很多都是借鉴的volley的设计思想完成的。 另外,volley 源码相对简单易懂。 一、首先volley使用不同请求模式需要new 阅读全文
摘要:
开发中多次碰到了tolist方法阻塞住的问题。一直为了赶进度,避开使用该操作符号。 直到有一天发现flatmap中的 observable.from()也会阻塞。排查原因才发现是 onComplete()方法没有调用的原因。 根据rxjava的链式调用原理,有从下到上一步步传递回调函数,在从上到下逐 阅读全文
摘要:
app启动的时候在启动也显示之前会出现白屏或黑屏的情况。 主要是因为视图没有及时填充上造成的,解决方式如下: 在style中添加以下代码: 然后在清单文件中把启动页的 theme设置为以上theme。 参考博文:http://www.jianshu.com/p/09b876b865ac 阅读全文
摘要:
使用场景: 使用其他应用打开app的某个页面,清单文件中配置intent。 1、首先需要把这个activity的启动模式设置为singletask。这样能调出该页面。 2、但是启动模式设置完后会出现,当页面没有销毁的时候调用,此时获取不到intent传过来的值。主要是因为此时oncreate方法并不 阅读全文
摘要:
简单的理解: 由于java实例化一个对象的操作(new)不是原子性的。所以在线程a 在执行到 代码 3 处时,当3完成了一部分时,instance就已经非null了, 但是此时实例对象并没有构造完成。假如这个时候线程b进来if语句就会得道instance不是null, 会直接拿到未完成的 insta 阅读全文
摘要:
在recyclerview或listview中进行下载时,由于条目复用等原因会导致下载的进度条更新错乱。 你可能觉得条目复用问题我解决过那么多次,加个tag了啥的就解决了不是。 有这个想法说明你没做过下载的处理。因为在下载的过程中,进度条是一直处于更新状态,所以传统的解觉条目复用的方式并不起作用。 阅读全文
摘要:
yi引入方式有两种,一种是官方的 通过jack库 另一种是第三方的,推荐使用第三方的,官方的坑比较多 使用第三方: 第一步:在project gradle文件中添加 第二步:app 的gradle文件中添加: 参考博客http://blog.csdn.net/ys743276112/article/ 阅读全文
摘要:
1、app build.gradle中添加代码 2、在xml布局文件中,添加根布局 <layout> ....</layout> 3、activity的oncreate方法中 添加 4、此时你会发现在as中使用 viewDataBinding. 就会提示出你布局文件中的控件,也就是直接使用了。不过命 阅读全文
摘要:
使用apt来导入butterknife和dagger的时候,会报警告 (在引用databinding的时候会报,其他不会)Warning:Using incompatible plugins for the annotation processing: android-apt. This may r 阅读全文
摘要:
直接用字节流读取,可保留原格式,在拼装字符串的时候可以把编码转为utf-8 防止乱码,但是根据缓存byte数组的大小不同,会出现部分字符乱码情况 使用字符流的readline读取出来不能保留文档原格式,里面的空格换行都失效了。但是没有乱码。最终解决办法,是采用此方法,然后手动拼接换行符。代码如下: 阅读全文