一.fragment生命周期:https://blog.csdn.net/forever_crying/article/details/8238863
二.activity fragment传值:
1,eventbus
2,setArguments(bundle);
3,
//宿主activity中的getTitles()方法
public String getTitles(){
return "hello";
}
//Fragment中的onAttach方法
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
titles = ((MainActivity) activity).getTitles();
}
三.service应用场景:https://blog.csdn.net/imxiangzi/article/details/76039978
一般普通的异步任务,比如网络请求,数据库或者文件相关操作,我们都会使用线程池的方式来做,因为这样使用的系统开销小,运行效率高,而且随着业务逻辑的复杂度增加,扩展性也更强。
然而,对于一些特殊场景,比如进程保活,使用第三方SDK服务比如地图,IM等,就需要使用Service来实现,因为这些服务一般与App主进程隔离开,需要运行在新进程中以防止App主进程发生异常崩溃时,牵连第三方服务也挂掉
四:service intentService:https://blog.csdn.net/matrix_xu/article/details/7974393
https://blog.csdn.net/lyj1005353553/article/details/53647121
五.activity service通信:https://blog.csdn.net/qq_28468727/article/details/52144155
六.linkedHashMap: https://www.jianshu.com/p/8f4f58b4b8ab
https://blog.csdn.net/justloveyou_/article/details/71713781
七:单例在多线程中的使用:https://blog.csdn.net/u012100371/article/details/71195453
八.okhtttp retrofit
九。handler机制:https://blog.csdn.net/wsq_tomato/article/details/80301851
1.在使用handler的时候,在handler所创建的线程需要维护一个唯一的Looper对象, 每个线程对应一个Looper,每个线程的Looper通过ThreadLocal来保证,如需了解ThreadLocal,点击查看详细讲解 ,
Looper对象的内部又维护有唯一的一个MessageQueue,所以一个线程可以有多个handler,
但是只能有一个Looper和一个MessageQueue。
2.Message在MessageQueue不是通过一个列表来存储的,而是将传入的Message存入到了上一个
Message的next中,在取出的时候通过顶部的Message就能按放入的顺序依次取出Message。
3.Looper对象通过loop()方法开启了一个死循环,不断地从looper内的MessageQueue中取出Message,
然后通过handler将消息分发传回handler所在的线程。
十.事件分发机制 内外部拦截处理冲突:
https://blog.csdn.net/guolin_blog/article/details/9097463/
https://www.jianshu.com/p/d3758eef1f72
https://blog.csdn.net/lmj623565791/article/details/38960443
十一.内外部拦截处理冲突: https://blog.csdn.net/lylodyf/article/details/52438997
https://blog.csdn.net/chunqiuwei/article/details/41084921
原文:https://www.cnblogs.com/aWay01/p/11638335.html