BroadcastReciever:
例如当开机完成后,你可以监听这条广播,接收到这条广播就能做点你想做的事。
当网络状态改变时,你可以监听这条广播,接收到这条广播就能做点你想做的事。
当电池电量改变时,你可以监听这条广播,接收到这条广播就能做点你想做的事。
接收到广播在onReceive中做你想做的事:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String msg = intent.getStringExtra("msg"); <pre name="code" class="java"><span style="white-space:pre"> </span>if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {
} } }
要想接收到广播就得注册相应的监听事件:
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.MY_BROADCAST"/>//自定义Action,常用用系统广播如Intent.ACTION_CREATE_SHORTCUT
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
或者这样注册监听:
MyReceiver receiver = new MyReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.MY_BROADCAST");
registerReceiver(receiver, filter);
registerReceiver是android.content.ContextWrapper类中的方法,Activity和Service都继承了ContextWrapper,所以可以直接调用。
解除注册:
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
Service:
Service与Activity类似。就像上面说的BroadcastReceiver,是在Activity或Service中应用的。