BroadcastReceiver的应用

一、什么是广播?

 1.广播是Android四大组件之一,分为发送方和接收方,可以实现跨多个页面和多个进程的数据通信。

二、静态注册无序广播示列:

一个项目切换到另一个项目:

  静态注册:

<receiver android:name=".Myreserve">
    <intent-filter >
        <action android:name="zhifubao"/>
    </intent-filter>

</receiver>

实体类:

public void onReceive(Context context, Intent intent) {

    Toast.makeText(context, "你真衰", Toast.LENGTH_SHORT).show();
    Log.e("Rer","55555555");

}
MainActivity:
     public void onClick(View view) {


      Intent intent=new Intent("zhifubao");
      sendOrderedBroadcast(intent,null);
 
      }

BroadcastReceiver的应用BroadcastReceiver的应用

三、动态注册无序广播示列:

动态注册:

private Myreserve1 myreserve1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        myreserve=new Myreserve();

        IntentFilter intentFilter=new IntentFilter();
        intentFilter.addAction("zhifubao");
        //动态注册广播接收器
        registerReceiver(myreserve,intentFilter);
MainActivity:

 public void onClick(View view) {


      Intent intent=new Intent("zhifubao");
      sendOrderedBroadcast(intent,null);
 
      }
实体类:

public void onReceive(Context context, Intent intent) {

    Toast.makeText(context, "你真衰", Toast.LENGTH_SHORT).show();
    Log.e("Rer","55555555");

}

四、静态注册有序广播:

静态注册:

<receiver android:name=".Myreserve">
    <intent-filter   android:priority="1000" >
        <action android:name="zhifubao"/>
    </intent-filter>
</receiver>
<receiver android:name=".Myreserve1">
    <intent-filter android:priority="-1000">
        <action android:name="zhifubao"/>
    </intent-filter>
</receiver>
两个实体类:

public class Myreserve extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        Toast.makeText(context, "你真衰", Toast.LENGTH_SHORT).show();
        Log.e("Rer","55555555");

    }

public class Myreserve1 extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "前往", Toast.LENGTH_SHORT).show();
        Log.e("fdw","2222");
    }
MainActivity:

public void onClick(View view) {


    Intent intent=new Intent("zhifubao");
  sendOrderedBroadcast(intent,null);

}


五、动态注册有序示列:
动态注册:

private Myreserve myreserve;
private Myreserve1 myreserve1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        myreserve=new Myreserve();

        IntentFilter intentFilter=new IntentFilter();
        intentFilter.addAction("zhifubao");
        //动态注册广播接收器
        registerReceiver(myreserve,intentFilter);
        intentFilter.setPriority(-1000);
        myreserve1=new Myreserve1();
        intentFilter.setPriority(1000);
        registerReceiver(myreserve1,intentFilter);






    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(myreserve);
    }

两个实体类:

public class Myreserve extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        Toast.makeText(context, "你真衰", Toast.LENGTH_SHORT).show();
        Log.e("Rer","55555555");

    }

public class Myreserve1 extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "前往", Toast.LENGTH_SHORT).show();
        Log.e("fdw","2222");
    }
MainActivity:

public void onClick(View view) {


    Intent intent=new Intent("zhifubao");
  sendOrderedBroadcast(intent,null);

}