zoukankan      html  css  js  c++  java
  • [转]Android Broadcast receiver 编程

    本文转自:http://buaadallas.blog.51cto.com/399160/377637

     在Android中,广播(broadcast)是非常有用的功能。通过广播可以通知其他广播接受这某个事件发生了。比如电源不足,信号不好等。

    下面我做了一个简单的demo,首先看看activity

    1. package com.android.broadcasttest; 
    2.  
    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 BroadcastTest extends Activity { 
    11.     public static final String NEW_LIFEFORM_DETECTED =  
    12.         "com.android.broadcasttest.NEW_LIFEFORM"
    13.      
    14.     /** Called when the activity is first created. */ 
    15.     @Override 
    16.     public void onCreate(Bundle savedInstanceState) { 
    17.         super.onCreate(savedInstanceState); 
    18.         setContentView(R.layout.main); 
    19.          
    20.         Button btn0 = (Button)findViewById(R.id.btn0); 
    21.         btn0.setOnClickListener(new OnClickListener() { 
    22.             public void onClick(View v) { 
    23.                 Intent it = new Intent(NEW_LIFEFORM_DETECTED);           
    24.                 sendBroadcast(it); 
    25.             } 
    26.         }); 
    27.     } 

    在这个activity中生成了一个按钮,当按下按钮的时候通过sendBroadcast()发送一个广播。

    我们再看看广播接收者代码:

    1. package com.android.broadcasttest; 
    2.  
    3. import android.content.BroadcastReceiver; 
    4. import android.content.Context; 
    5. import android.content.Intent; 
    6. import android.util.Log; 
    7. import android.widget.Toast; 
    8.  
    9. public class MyBroadcastReceiver extends BroadcastReceiver { 
    10.     public static final String BURN = 
    11.         "com.paad.alien.action.BURN_IT_WITH_FIRE"
    12.      
    13.     public MyBroadcastReceiver () { 
    14.         Log.v("BROADCAST_TAG""myBroadCast"); 
    15.     } 
    16.     @Override 
    17.     public void onReceive(Context context, Intent intent) { 
    18.         // TODO Auto-generated method stub       
    19.         Toast.makeText(context, "成功接收广播:", Toast.LENGTH_LONG).show();   
    20.     } 
    21.  

    在onReceive()中实现了当接收到广播所做的动作。

    我们还需要在AndroidManifest.xml中注册该receiver

    1. <?xml version="1.0" encoding="utf-8"?> 
    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    3.       package="com.android.broadcasttest" 
    4.       android:versionCode="1" 
    5.       android:versionName="1.0"> 
    6.     <application android:icon="@drawable/icon" android:label="@string/app_name"> 
    7.         <activity android:name=".BroadcastTest" 
    8.                   android:label="@string/app_name"> 
    9.             <intent-filter> 
    10.                 <action android:name="android.intent.action.MAIN" /> 
    11.                 <category android:name="android.intent.category.LAUNCHER" /> 
    12.             </intent-filter> 
    13.         </activity> 
    14.         <receiver android:name=".MyBroadcastReceiver"> 
    15.             <intent-filter> 
    16.                 <action android:name="com.android.broadcasttest.NEW_LIFEFORM" /> 
    17.             </intent-filter> 
    18.         </receiver> 
    19.     </application>         
    20.     <uses-sdk android:minSdkVersion="8" /> 
    21. </manifest>  

    在receiver的action中定义了该receiver能够接受的广播。

    本文出自 “Mobile and Linux Deve..” 博客,

    请务必保留此出处http://buaadallas.blog.51cto.com/399160/377637

  • 相关阅读:
    nodeJS入门01-http模块
    nodeJS入门-Buffer对象
    php与MySQL(php内置mysql函数)
    php与MySQL(基本操作)
    log4net
    js验证小数类型(浮点数)和整数类型
    牛腩学ASP.NET CORE做博客视频
    opencv再学习之路(八)---设定感兴趣区域(RIO)
    opencv再学习之路(四)---色彩分割得到二值图像
    opencv再学习之路(三)---形态学操作
  • 原文地址:https://www.cnblogs.com/freeliver54/p/2134519.html
Copyright © 2011-2022 走看看