Activity
Intent
BroadcastReveiver 源码位于: framework/base/core/java/android.content.BroadcastReceiver.java
1. 系统注册:在 AndroidManifest.xml 中注册
2. 代码中注册:
IntentFilter intentFilter = new IntentFilter( "android.provider.Telephony.SMS_RECEIVED " );
registerReceiver( mBatteryInfoReceiver , intentFilter);
生命周期只有十秒左右,如果在 onReceive() 内做超过十秒内的事情,就会报错 。 < intent-filter android:priority = "1000" >
广播类型及广播的收发
广播类型
普通广播 (Normal broadcasts)
发送一个广播,所以监听该广播的广播接收者都可以监听到改广播。
异步广播 , 当处理完之后的Intent ,依然存在,这时候registerReceiver(BroadcastReceiver, IntentFilter) 还能收到他的值,直到你把它去掉 , 不能将处理结果传给下一个接收者 , 无法终止广播 .
有序广播 (Ordered broadcasts)
按照接收者的优先级顺序接收广播 , 优先级别在 intent-filter 中的 priority 中声明 ,-1000 到
1000 之间 , 值越大 , 优先级越高 . 可以终止广播意图的继续传播 . 接收者可以篡改内容 .
clearAbortBroadcast ()
getAbortBroadcast ()
getResultCode ()
getResultData ()
Service
ContentProvider
()FrameLayout
()LinearLayout
()RelativeLayout
()TableLayout
()AbsoluteLayout