静态注册:
静态注册步骤:
1. 创建 BroadcastReceiver子类
package com.example.broadcastreceiver;
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) {
String msg=intent.getStringExtra("msg");
Toast.makeText(context, msg, 0).show();
}
}
2. Manifest文件中注册并添加权限
//静态权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<receiver android:name="com.example.broadcastreceiver.MyReceiver">
<intent-filter>
<action android:name="com.dragon.net"></action>
</intent-filter>
</receiver>
3.实例化 Intent,setAction
package com.example.broadcastreceiver;
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 {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button)findViewById(R.id.button1);
//静态注册
//1. 创建 BroadcastReceiver子类
//2. Manifest文件中注册
//3.实例化 Intent,setAction
//4.发送
final Intent in=new Intent();
in.setAction("com.dragon.net");
in.putExtra("msg","静态注册");
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
sendBroadcast(in);
}
});
}
}
动态注册步骤:
//动态注册
//1.创建IntentFilter对象
//2.为filter添加action
//3.创建MyDynamicReceiver对象
//4.注册
IntentFilter filter=new IntentFilter();
filter.addAction("com.zhangshuo.ok");
MyDynamicReceiver receiver=new MyDynamicReceiver();
registerReceiver(receiver, filter);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent in1=new Intent();
in1.setAction("com.zhangshuo.ok");
in1.putExtra("msg1","动态注册!");
sendBroadcast(in1);
}
});
MyDynamicReceiver类
package com.example.broadcastreceiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class MyDynamicReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("com.zhangshuo.ok")){
String msg1=intent.getStringExtra("msg1");
Toast.makeText(context, msg1, 0).show();
}
}
}