新建一个MyReceiver
public class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
System.out.print("接受消息"+intent.getStringExtra("data"));
}
}
public class MainActivity extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.sendMessage).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.sendMessage:
//intent传递数据
Intent i = new Intent(new Intent(this,MyReceiver.class));
i.putExtra("data","jikedfa");
sendBroadcast(i);
break;
}
}
}
- 动态注册和注销
MyReceiver
public class MyReceiver extends BroadcastReceiver {
//添加ACTION
public static final String ACTION = "sw.cins.com.service.intent.action.MyReceiver";
public MyReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
System.out.print("接受消息"+intent.getStringExtra("data"));
}
}
MainActivity
public class MainActivity extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.sendMessage).setOnClickListener(this);
findViewById(R.id.btnreg).setOnClickListener(this);
findViewById(R.id.btnunreg).setOnClickListener(this);
}
private MyReceiver receiver = null;
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.sendMessage:
Intent i = new Intent(MyReceiver.ACTION);
i.putExtra("data","jikedfa");
sendBroadcast(i);
break;
case R.id.btnreg:
if(receiver == null){
//注册
receiver = new MyReceiver();
registerReceiver(receiver,new IntentFilter(MyReceiver.ACTION));
}
break;
case R.id.btnunreg:
if(receiver != null){
//注销
unregisterReceiver(receiver);
receiver = null;
}
break;
}
}
}
- 优先级控制
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
//通过priority控制优先级,数值越大,优先级越高
<intent-filter android:priority="10">
</intent-filter>
</receiver>