android studio BroadcastReceiver基础

来源:互联网 发布:淘宝店铺名能修改吗 编辑:程序博客网 时间:2024/05/22 17:14

最简单形式:

manifest:

<receiver    android:name=".MyReceiver"    android:enabled="true"    android:exported="false"></receiver>
mainactivity:

case R.id.btn:    sendBroadcast(new Intent(this,MyReceiver.class));    break;
myreceiver:

 @Override    public void onReceive(Context context, Intent intent) {        // TODO: This method is called when the BroadcastReceiver is receiving        // an Intent broadcast.//        throw new UnsupportedOperationException("Not yet implemented");        System.out.println("receive new msg");    }
在activity中控制receiver的创建和销毁:

首先在manifest中注释掉receiver。

在receiver中定义:

public static final String ACTION="com.example.jowang.learnbroadcastreceiver.intent.action.MyReceiver";
mainactivity:
@Overridepublic void onClick(View view) {    switch (view.getId()){        case R.id.btn:            sendBroadcast(new Intent(MyReceiver.ACTION));//隐式intent            break;        case R.id.btnreg:            if (receiver==null){                receiver=new MyReceiver();                registerReceiver(receiver,new IntentFilter(MyReceiver.ACTION));            }            break;        case R.id.btncan:            if (receiver!=null){                unregisterReceiver(receiver);                receiver=null;            }            break;    }}private MyReceiver receiver=null;
优先级 在intentfilter中设置priority数值越大,优先级越高
阻止信息继续传递:activity中:sendorderedbroadcast(intent,null)
receiver的onreceive中:abortbroadcast();

0 0
原创粉丝点击