InterView Plan 0210

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绘制流程

你可能感兴趣的:(InterView Plan 0210)