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); }
三、动态注册无序广播示列:
动态注册:
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); }