您当前的位置: 首页 > 

xiangzhihong8

暂无认证

  • 0浏览

    0关注

    1324博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

顺序广播和无序广播

xiangzhihong8 发布时间:2016-01-04 13:27:20 ,浏览量:0

普通广播(Normal Broadcast):

一,优缺点:和有序广播的优缺点相反!

二,发送广播的方法:sendBroadcast()

有序广播(Ordered Broadcast):

一,优缺点

优点:1,按优先级的不同,优先Receiver可对数据进行处理,并传给下一个Receiver

             2,通过abortBroadcast可终止广播的传播  

缺点:效率低  

二,发送广播的方法:sendOrderedBroadcast()   

三,优先接收到Broadcast的Receiver可通过setResultExtras(Bundle)方法将处理结果存入Broadcast中,

下一个Receiver 通过 Bundle bundle=getResultExtras(true)方法获取上一个 Receiver传来的数据     

 

程序效果:点击按钮,两个Receiver接收同一条广播,在logcat中打印出数据(按照Receiver的优先顺序,Receiver2先,Receiver1后)      

Manifest

[html]  view plain copy
  1.   
  2.   
  3.   
  4.       
  5.   
  6.       
  7.           
  8.               
  9.                   
  10.   
  11.                   
  12.               
  13.               
  14.           
  15.           
  16.               
  17.                   
  18.               
  19.           
  20.           
  21.               
  22.                   
  23.               
  24.           
  25.       
  26.   
  27.   
主Activity

[java]  view plain copy
  1. package com.song;  
  2. //发送广播,bundle绑上key为a的数据  
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9.   
  10. public class C48_BroadcastActivity extends Activity {  
  11.     /** Called when the activity is first created. */  
  12.     Button button;  
  13.     @Override  
  14.     public void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.main);  
  17.         button=(Button)findViewById(R.id.button);  
  18.         button.setOnClickListener(new OnClickListener() {  
  19.               
  20.             @Override  
  21.             public void onClick(View v) {  
  22.                 // TODO Auto-generated method stub  
  23.                 Intent intent=new Intent("com.song.123");  
  24.                 Bundle bundle=new Bundle();  
  25.                 bundle.putString("a", "aaa");  
  26.                 intent.putExtras(bundle);  
  27.                 //有序广播  
  28.                 sendOrderedBroadcast(intent, null);  
  29.             }  
  30.         });  
  31.           
  32.     }  
  33. }  
Receiver2
[java]  view plain copy
  1. package com.song;  
  2. //优先接到广播,bundle绑上key为b的数据  
  3. import android.content.BroadcastReceiver;  
  4. import android.content.Context;  
  5. import android.content.Intent;  
  6. import android.os.Bundle;  
  7.   
  8. public class MyReceiver2 extends BroadcastReceiver{  
  9.   
  10.     @Override  
  11.     public void onReceive(Context context, Intent intent) {  
  12.         // TODO Auto-generated method stub  
  13.         System.out.println("receiver2");  
  14. //      context.getSystemService(name);  
  15.         Bundle bundle=intent.getExtras();  
  16.         bundle.putString("b", "bbb");  
  17.         System.out.println("a="+bundle.get("a"));  
  18.         setResultExtras(bundle);  
  19.         //切断广播  
  20. //      abortBroadcast();  
  21.     }  
  22.   
  23. }  

Receiver1

[java]  view plain copy
  1. package com.song;  
  2. //接收从receiver2传来的广播,包含key为a和b的数据  
  3. import android.content.BroadcastReceiver;  
  4. import android.content.Context;  
  5. import android.content.Intent;  
  6. import android.os.Bundle;  
  7.   
  8. public class MyReceiver1 extends BroadcastReceiver{  
  9.   
  10.     @Override  
  11.     public void onReceive(Context context, Intent intent) {  
  12.         // TODO Auto-generated method stub  
  13.         System.out.println("receiver1");  
  14.         //要不要接受上一个广播接收器receiver2传来的的数据  
  15.         Bundle bundle=getResultExtras(true);  
  16.         System.out.println("a="+bundle.getString("a")+",b="+bundle.getString("b"));  
  17.     }  
  18.   
  19. }  

程序效果
关注
打赏
1482932726
查看更多评论
立即登录/注册

微信扫码登录

0.0655s