广播接收者的使用

来源:互联网 发布:淘宝 论文代发 卓越 编辑:程序博客网 时间:2024/06/05 01:53

静态注册:

1、创建两个类,继承BroadcastReceiver并实现onReceive

public class LaoDa extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        String resultData = getResultData();//获取接受到的广播信息        System.out.println(resultData+"钱很多 1");    }}
public class LaoEr extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        String resultData = getResultData();//获取接收到的广播信息        System.out.println(resultData+"钱很多 2");    }}
2、在 清单文件AndroidManifest > application 中注册广播receiver <注意:intent-filter后的 priority属性 是设置接收到广播的优先级,值越大优先级越高,这个值的范围为 -1000至1000>
<application    android:allowBackup="true"    android:icon="@mipmap/ic_launcher"    android:label="@string/app_name"    android:supportsRtl="true"    android:theme="@style/AppTheme">    <activity android:name=".MainActivity">        <intent-filter>            <action android:name="android.intent.action.MAIN" />            <category android:name="android.intent.category.LAUNCHER" />        </intent-filter>    </activity>    <receiver android:name=".LaoDa">        <intent-filter android:priority="1000">            <action android:name="QiLin666" />        </intent-filter>    </receiver>    <receiver android:name=".LaoEr">        <intent-filter android:priority="900">            <action android:name="QiLin666"/>        </intent-filter>    </receiver></application>
3、在activity中向两个广播发送数据
public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button mButton = (Button) findViewById(R.id.button);        mButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent();                intent.setAction("QiLin666");//设置让谁接收                sendOrderedBroadcast(intent,null,null,null,1,"发钱啦,",null);//发送广播            }        });    }}

动态注册:

1、与静态注册的第一步相同

2、先动态注册广播,再发送广播

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //动态注册广播接收器        LaoDa laoDa = new LaoDa();        IntentFilter intentFilter = new IntentFilter();        intentFilter.addAction("QiLin666");        registerReceiver(laoDa,intentFilter);
         LaoEr laoEr = new LaoEr();
        IntentFilter intentFilter = new IntentFilter();        intentFilter.addAction("QiLin666");        registerReceiver(laoEr,intentFilter);
Button mButton = (Button) findViewById(R.id.button); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction("QiLin666");//设置让谁接收 sendOrderedBroadcast(intent,null,null,null,1,"毛线",null);//发送广播 } }); }}

这是xml:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <Button        android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="发送广播" /></RelativeLayout>
好了,这边是广播接收者的简单使用,希望对您有所帮助!

2 0
原创粉丝点击