BroadcastReceiver的思考(1)

简介:

作为四大组件,Broadcast Receiver 使用起来比较简单。有两种注册方式:1. 在AndroidManifest中注册。2. 在代码中直接注册,这种注册需要注意的一点是:当注册此Receiver的Activity退出的时候,一定要调用unregisterReceiver 方法,这个有点像Service的Bind。

第二种方式的示例代码如下:

 ?[Copy to clipboard]Download zuiniuwang.java

 

 
  1. * BroadCasterActivity.java  
  2.  * com.androidtest.broadcaster  
  3.  *  
  4.  * Function: TODO  
  5.  *  
  6.  *   ver     date           author  
  7.  * ──────────────────────────────────  
  8.  *           2011-6-8       Leon  
  9.  *  
  10.  * Copyright (c) 2011, TNT All Rights Reserved.  
  11. */  
  12.    
  13. package com.androidtest.broadcaster;  
  14.    
  15. import com.androidtest.R;  
  16.    
  17. import android.app.Activity;  
  18. import android.content.BroadcastReceiver;  
  19. import android.content.Context;  
  20. import android.content.Intent;  
  21. import android.content.IntentFilter;  
  22. import android.os.Bundle;  
  23. import android.util.Log;  
  24. import android.view.View;  
  25. import android.widget.Button;  
  26.    
  27. /**  
  28.  * ClassName:BroadCasterActivity  
  29.  * Function: TODO ADD FUNCTION  
  30.  * Reason:   TODO ADD REASON  
  31.  *  
  32.  * @author   Leon  
  33.  * @version  
  34.  * @since    Ver 1.1  
  35.  * @Date     2011-6-8  
  36.  */  
  37. public class BroadCasterActivity extends Activity{  
  38.    
  39.     private Broadcaster  myBroadcaster;  
  40.     @Override  
  41.     protected void onCreate(Bundle savedInstanceState) {  
  42.    
  43.         // TODO Auto-generated method stub  
  44.         super.onCreate(savedInstanceState);  
  45.         this.setContentView(R.layout.activity_broadcaster);  
  46.         myBroadcaster = new Broadcaster();  
  47.         IntentFilter filter=new IntentFilter();  
  48.         filter.addAction("test");  
  49.         this.registerReceiver(myBroadcaster, filter);  
  50.    
  51.         Button  button=(Button)this.findViewById(R.id.button1);  
  52.    
  53.         button.setOnClickListener(new View.OnClickListener() {  
  54.    
  55.             @Override  
  56.             public void onClick(View v) {  
  57.    
  58.                 // TODO Auto-generated method stub  
  59.                 Intent intent =  new Intent("test");  
  60.                 BroadCasterActivity.this.sendBroadcast(intent);  
  61.    
  62.             }  
  63.         });  
  64.    
  65.     }  
  66.    
  67.     @Override  
  68.     public void finish() {  
  69.    
  70.         // TODO Auto-generated method stub  
  71.         super.finish();  
  72.         this.unregisterReceiver(myBroadcaster);  
  73.    
  74.     }  
  75.    
  76. }  
  77. class Broadcaster extends BroadcastReceiver{  
  78.    
  79.     private  static  final  String TAG = "Broadcaster";  
  80.     @Override  
  81.     public void onReceive(Context context, Intent intent) {  
  82.    
  83.         // TODO Auto-generated method stub  
  84.         String string = intent.getAction();  
  85.         Log.v(TAG  , "The action is "+ string);  
  86.    
  87.     }  
  88.    
  89. }  
  90. 当然我们也可以使用第一种方式,在Android Manifest.xml定义,这样就定义了一个全局的receiver()和Activity 
 
 
 
  1. <receiver android:name=".broadcaster.Broadcaster"> 
  2. <intent-filter> 
  3. <action android:name="test" /> 
  4. </intent-filter> 
  5. </receiver>    
  6.  

本文转自 最牛傻蛋 51CTO博客,原文链接:http://blog.51cto.com/zuiniuwang/718307,如需转载请自行联系原作者
相关文章
|
API Android开发 开发者
Android四大组件-BroadcastReceiver
Android四大组件-BroadcastReceiver
126 0
|
Android开发
Android四大组件之BroadcastReceiver(四)
两个方面来解决BroadcastReceiver存在的安全隐患,分别是自定义广播权限和使用LocalBroadcastManager。
132 1
|
安全 Android开发
Android四大组件之BroadcastReceiver(三)
接下来讲一下有序广播中对广播的拦截、有序广播与标准广播的区别、广播的安全性问题
225 1
|
Android开发
Android四大组件之BroadcastReceiver(二)
接下来讲 BroadcastReceiver的使用,主要讲如何动态注册广播,如何静态注册广播,已经两者之间的区别。
147 0
|
设计模式 Android开发
Android四大组件之BroadcastReceiver(一)
BroadcastReceiver是Android四大组件之一,在app开发中被广泛应用到,那什么是广播呢?
291 0
|
Java Android开发
2-AII--BroadcastReceiver有序广播
零、前言 先讲个场景小故事: 从前,有个小男孩捡到一颗漂亮的石头,他想去卖,价格1元。 男孩(Boy)大喊:"我有一个漂亮的石头,只卖1元",一个石匠买了这个石头。
1127 0
|
Android开发
BroadcastReceiver的源码分析
android提供了广播机制,通过BroadcastReceiver可以在不同的进程间传递消息。类似于观察者模式,A应用通过注册广播表示A对消息subject感兴趣,当B应用发出subject类型的消息的时候,A应用就能收到对应的消息。
1324 0