BroadcastReceiver广播

 

  
  
  
  
  1. BroadcastReciever广播:  
  2. 他采用了一种设计模式,熟称观察者模式。  
  3. 意思:当我注册一个广播的时候,申明了标记Action  
  4.      当发送广播的时候,给传送的Intent设置了相同的标记Action  
  5.      一呼一答的模式。  
  6.  
  7. 注册广播实现方式(两种):  
  8. 一.在manifest.xml注册广播接收器  
  9. 二.用代码动态实现广播接收器(一边在Activity的onResumu中实现)  
  10. 先看第一种,实现如下:  
  11. 1.创建广播接收器(MyReceiver )  
  12. public class MyReceiver extends BroadcastReceiver {  
  13.  
  14.     @Override 
  15.     public void onReceive(Context context, Intent intent) {  
  16.         Log.i("MyReceiver""ACTION = " + intent.getAction());  
  17.     }  
  18.  
  19. }  
  20.  
  21. 2.在Manifest.xml中注册广播接收器  
  22. <receiver android:name=".MyReveiver">  
  23.            <intent-filter>  
  24.                <action android:name="com.zm.broad"></action>  
  25.            </intent-filter>  
  26. </receiver>  
  27.  
  28. 3.Activity中发送广播  
  29. final String ACTION = "com.zm.broad";  
  30. protected void onResume() {  
  31.                   
  32.         //发送广播  
  33.         Intent intent = new Intent();  
  34.         intent.setAction(ACTION);  
  35.         sendBroadcast(intent);  
  36.           
  37.         super.onResume();  
  38. }  
  39. ---------------------------------------------  
  40. 第二种实现如下:  
  41. public class BroadcastActivity extends Activity {  
  42.       
  43.     MyReceiver myReceiver;  
  44.     final String ACTION = "com.zm.broad";  
  45.       
  46.     /** Called when the activity is first created. */ 
  47.     @Override 
  48.     public void onCreate(Bundle savedInstanceState) {  
  49.         super.onCreate(savedInstanceState);  
  50.         setContentView(R.layout.main);  
  51.           
  52. //        Button button = (Button)findViewById(R.id.broadcast);  
  53. //        button.setOnClickListener(new OnClickListener(){  
  54. //  
  55. //          public void onClick(View v) {  
  56. //              Intent intent = new Intent();  
  57. //              intent.setAction(ACTION);  
  58. //              sendBroadcast(intent);  
  59. //          }  
  60. //            
  61. //        });  
  62.           
  63.           
  64.     }  
  65.       
  66.     @Override 
  67.     protected void onResume() {  
  68.           
  69.         myReceiver = new MyReceiver();  
  70.         IntentFilter filter = new IntentFilter();  
  71.         filter.addAction(ACTION);  
  72.         //注册  
  73.         registerReceiver(myReceiver, filter);  
  74.           
  75.         //发送广播  
  76.         Intent intent = new Intent();  
  77.         intent.setAction(ACTION);  
  78.         sendBroadcast(intent);  
  79.           
  80.         super.onResume();  
  81.     }  
  82.       
  83.     @Override 
  84.     protected void onPause() {  
  85.         unregisterReceiver(myReceiver);  
  86.         super.onPause();  
  87.     }  
  88.       
  89.     class MyReceiver extends BroadcastReceiver{  
  90.         @Override 
  91.         public void onReceive(Context context, Intent intent) {  
  92.             Log.i("MyReceiver""ACTION = " + intent.getAction());  
  93.         }  
  94.     }  
  95.       

 

你可能感兴趣的:(职场,Broadcast,休闲,Broadcast广播)