使用BroadcastReceiver步骤:
1.继承BroadcastReceiver,并复写里面的onReceiver()方法;
2.在全局文件听注册广播,跟Activity与Service一样, 注册广播的方式有以下两种:
2.1:一种是在AndroidMinifest.xml文件中注册;
2.2:另一种是直接在代码中注册
3. 构建Intent对象
4.Intent对象调用sendBroadcase()方法发送广播。
程序运行的过程为:
1.先到全局文件中注册一个Receiver;
2.当用户点击发送广播时,系统会根据Intent-filter来过滤用户发送的广播;
3.如果是注册的广播,则调用继承BroadcaseReceiver的类中复写的onReceiver()方法。
注意:BroadcaseReceiver对象仅在调用onReceiver()方法时有效,当该方法执行完毕后,系统认为销毁该对象。《为证明这句话,在程序中重写接收器的构造方法》
代码如下:
public Receiver() {
Log.i(TAG, "调用:Receiver()方法!");
}
在官方文档中没有搜索到的一个广播如下:
<receiver android:name="com.mzh.www.receiver.Receiver">
<intent-filter >
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
android.provider.Telephony.SMS_RECEIVED;
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
在自己的程序中为什么发送的短信中包含的中文是乱码啊?解决方法是什么?
广播事件的处理二
2.1:一种是在AndroidMinifest.xml文件中注册;
2.2:另一种是直接在代码中注册,如下:
2.2.1:
IntentFilter filter = new IntentFilter(ACTION);
registerReceiver(receiver, filter)
2.2.2:
unregisterReceiver(receiver); 本文转自华华世界 51CTO博客,原文链接:http://blog.51cto.com/mzh3344258/733372,如需转载请自行联系原作者