Android 广播接收器BroadcastReceiver

来源:互联网 发布:java身份证识别 编辑:程序博客网 时间:2024/03/28 17:18

新建一个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>
0 0