
本文主要适用于非一二线互联网公司 Offer 的选择。希望以下一些简单的方法,可以辅助你去判断一家公司是否靠谱。
more >>
		
		
		  程序媛、乐器狂、工匠、重度偏执者
前提:WebView在 Android 5.1 测试机上正常显示,在 Android 7.0 上无法显示,一直 loading 。(注:url 为 htts 协议)
考虑到验证码的 Webview 和 Listener 都是自己重写,可能漏掉了什么,果然在细细翻看官方源码的时候,发现了 WebViewClient 多复写了 onReceivedSslError 监听,初步判断是遇到证书问题。
解决:
如果 Parent 是 Child 的父类,那么 List<Parent> 和List<Child> 的关系是什么呢?对于 Java 来说,没有关系。
        
          more >>
        
      
      
    
不想重复造轮子,但是查阅后发现网上大部分的博文缺少了考虑的情况。
要么粘贴的手机号无法格式化,要么删除时空格也占一个字符。
只能自己动手写了个全情况考虑的watcher
优化:
Intent本身就可以传递参数(Intent.putExtra(“key”, value))为何还要用Bundle呢?
Intent负责Activity之间的交互,内部是持有一个Bundle的。
putExtra()方法的源码
  | 
  | 
putExtras(Bundle bundle):会将Intent的内部Bundle替换成参数bundle。
AsyncTask
底层用到了线程池。AsyncTask封装了线程池和Handler,它主要是为了方便开发者在子线程中更新UI。
AsyncTask内的Handler是一个静态的Handler对象,为了能够将执行环境切换到主线程,这就要求Handler这个对象必须在主线程中创建。由于静态成员会在加载类的时候进行初始化,因此这就变相要求AsyncTask的类必须在主线程中加载,否则同一个进程中的AsyncTask都无法正常工作。
注意:从Android 3.0开始,默认情况下AsyncTask是串行执行的。但在Android 3.0之前是并行执行的。
IntentService
底层直接使用了线程,IntentService是一个服务,系统对其进行了封装使其可以更方便地执行后台任务,IntentService内部采用HandlerThread来执行任务,当任务执行完毕后IntentService会自动退出。
特殊的Service,它继承了Service并且它是抽象类。IntentService可用于执行后台耗时的任务,当任务执行后它会自动停止,同时由于IntentService是服务的原因,这导致他的优先级比单纯的线程要高很多,所以IntentService比较适合执行一些高优先级的后台任务。
HandlerThread
底层直接使用了线程,HandlerThread是一中消息循环的线程,在它的内部可以使用Handler。  
HandlerThread继承了Thread,它是一种可以使用Handler的Thread,它的实现很简单,就在run方法中通过Looper.prepare()来创建消息队列,并通过Looper.loop()来开启消息循环,这样在实际的使用中就允许在HandlerThread中创建Handler。
程序中除了图片缓存(三级缓存),还有信息缓存。当用户无法联网时,app会默认显示缓存的数据。
SQLite
下载完数据文件后,把文件的相关信息如url,路经,下载时间,过期时间等存放到数据库,把url作为唯一的标识。下次下载的时候根据url先从数据库中查询,如果查询到当前时间并未过期,就根据路径读取本地文件,从而实现缓存的效果。  
文件缓存
使用File.lastModified()方法得到文件的最后修改时间,与当前时间判断是否过期,从而实现缓存效果。数据格式为JSON。  
tag:
            缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
 npm i hexo-generator-json-content --save
            3、在根目录_config.yml里添加配置:
  jsonContent:
    meta: false
    pages: false
    posts:
      title: true
      date: true
      path: true
      text: false
      raw: false
      content: false
      slug: false
      updated: false
      comments: false
      link: false
      permalink: false
      excerpt: false
      categories: false
      tags: true