广播是Android中一种很重要的传递消息的方式。这里简单介绍下广播的使用。
1. 发送广播
类似于startActivity,我们需要定义一个Intent,通过Intent来传递我们需要传递的值。最后使用sendBroadcast方法发送广播。
Intent i = new Intent(ACTION);
i.putExtra("message","收到广播");
sendBroadcast(i);
2. 注册广播
注册广播一共有两种方式:动态注册和静态注册
2.1 动态注册广播
一般对于的内部BroadcastReceiver使用动态注册。
首先创建BroadcastReceiver对象用于接收广播:
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION)){
String result = intent.getStringExtra("message");
tvResult.setText(result);
}
}
};
然后代码动态注册广播:
IntentFilter filter = new IntentFilter(ACTION);
registerReceiver(receiver, filter);
在离开Activity时注销广播:
unregisterReceiver(receiver);
2.2 静态注册广播
用于单独的Receiver类。
创建一个继承自BroadcastReceiver的类:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("violetjack.testaction")){
String result = intent.getStringExtra("message");
Log.e("result", "result = " + result);
}
}
}
在AndroidManifest中进行静态的注册(代码写在与Activity同级别层中):
<!-- application层 -->
<receiver
android:name=".MyReceiver">
<intent-filter>
<action android:name="violetjack.testaction"/>
</intent-filter>
</receiver>
这就是BroadcastReceiver的使用全过程了~
demo链接:http://download.csdn.net/detail/violetjack0808/9427782