一。简介。
在Android中,BroadCast是一种广泛应用在应用程序之间的传输信息的机制。而BroadCastReceiver是对发出的BroadCast进行过滤和响应的一类组件。
对BroadCastReceiver的两种注册方式:
静态注册:
<receiver android:name="继承BroadcastReceiver的类的名字"> <intent-filter>
<action android:name="要监听的消息名字"/>
</intent-filter> </receiver>
动态注册:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(“”); //为BroadcastReceiver指定action,即要监听的消息名字。
registerReceiver(MyBroadcastReceiver,intentFilter) ; //注册监听
unregisterReceiver(MyBroadcastReceiver); //取消监听
二。接下来通过一个简单的Demo来简单介绍BroadCastReceiver的使用:
首先是在Manifest.xml中注册BroadcastReceiver:
<receiver
android:name=".MyReceiver">
<intent-filter>
<action android:name="com.android.douf"/>
</intent-filter>
</receiver>
在Activity中发送消息:
package com.android.douf;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private Button send;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
send = (Button) findViewById(R.id.send);
send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction("com.android.douf");
intent.putExtra("msg", "Hello");
sendBroadcast(intent);
}
});
}
}
在BraodCastReceiver中接受消息:
package com.android.douf;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.android.douf")) {
Toast.makeText(context, intent.getStringExtra("msg"), Toast.LENGTH_SHORT).show();
}
}
}