0210
1.BroadcastReicever
(1)观察者模式,基于消息的发布/订阅事件模型,解耦;
(2)AMS(Activity Manager Service);
(3)默认情况下,广播接收器也是运行在UI线程;
(4)BroadcastReceiver总体上可以分为两种注册类型:静态注册和动态注册;
(5)根据发送方式分类:Normal
Broadcast-普通广播,System Broadcast:-系统广播,Ordered broadcast-有序广播,Sticky
Broadcast-粘性广播(在 android 5.0/api
21中deprecated,不再推荐使用,相应的还有粘性有序广播,同样已经deprecated);
(6)将普通广播界定为:开发者自己定义的intent,例如:sendBroadcast(intent)/sendBroadcast(intent,receiverPermission)/sendBroadcastAsUser(intent,userHandler)/sendBroadcastAsUser(intent,
userHandler,receiverPermission)等;
(7)系统广播都具有特定的intent-filter和Action;
(8)有序广播sendOrderedBroadcast(intent, receiverPermission, ...);
(9)Android
v4兼容包中给出了封装好的LocalBroadcastManager类,用于统一处理App应用内的广播问题,使用方式上与通常的全局广播几乎相同,只是注册/取消注册广播接收器和发送广播时将主调context变成了LocalBroadcastManager的单一实例;
(10)对于LocalBroadcastManager方式发送的应用内广播,只能通过LocalBroadcastManager动态注册的ContextReceiver才有可能接收到;
(11)详见 http://www.cnblogs.com/lwbqqyumidi/p/4168017.html
2.EventBus
(1)EventBus是Android下高效的发布/订阅事件总线机制。作用是可以代替传统的Intent,Handler,Broadcast或接口函数在Fragment,Activity,Service,线程之间传递数据,执行方法。特点是代码简洁,是一种发布订阅设计模式(Publish/Subscribe),或称作观察者模式;
3.Android Service后台服务进程的守护
(1)早些时候保持后台Service不被杀死的方法:onStartCommand
中flags=START_STICKY;配置android:persistent="true";setForeground(true);android:process=”com.xxx.xxxservice”配置到单独的进程中;
(2)最新方法:利用ANDROID的系统广播(例如Intent.ACTION_TIME_TICK,这个广播每分钟发送一次,可以每分钟检查一次Service的状态)+ 守护进程;
(3)系统广播必要动态注册(静态注册接收不到),在ThisApp extends Application 或者在service里注册广播;
4.View绘制流程