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

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

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

      
  1. packagecom.android.broadcasttest;
  2. importandroid.app.Activity;
  3. importandroid.content.Intent;
  4. importandroid.os.Bundle;
  5. importandroid.view.View;
  6. importandroid.view.View.OnClickListener;
  7. importandroid.widget.Button;
  8. publicclassBroadcastTestextendsActivity{
  9. publicstaticfinalStringNEW_LIFEFORM_DETECTED=
  10. "com.android.broadcasttest.NEW_LIFEFORM";
  11. /**Calledwhentheactivityisfirstcreated.*/
  12. @Override
  13. publicvoidonCreate(BundlesavedInstanceState){
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.main);
  16. Buttonbtn0=(Button)findViewById(R.id.btn0);
  17. btn0.setOnClickListener(newOnClickListener(){
  18. publicvoidonClick(Viewv){
  19. Intentit=newIntent(NEW_LIFEFORM_DETECTED);
  20. sendBroadcast(it);
  21. }
  22. });
  23. }
  24. }

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

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

      
  1. packagecom.android.broadcasttest;
  2. importandroid.content.BroadcastReceiver;
  3. importandroid.content.Context;
  4. importandroid.content.Intent;
  5. importandroid.util.Log;
  6. importandroid.widget.Toast;
  7. publicclassMyBroadcastReceiverextendsBroadcastReceiver{
  8. publicstaticfinalStringBURN=
  9. "com.paad.alien.action.BURN_IT_WITH_FIRE";
  10. publicMyBroadcastReceiver(){
  11. Log.v("BROADCAST_TAG","myBroadCast");
  12. }
  13. @Override
  14. publicvoidonReceive(Contextcontext,Intentintent){
  15. //TODOAuto-generatedmethodstub
  16. Toast.makeText(context,"成功接收广播:",Toast.LENGTH_LONG).show();
  17. }
  18. }

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

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

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

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

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

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

更多相关文章

  1. Android(安卓)studio 自定义logcat各种信息输出颜色
  2. Android(安卓)广播机制---BroadCast
  3. Android(安卓)客户端通过HTTP POST发布图片和文字源代码
  4. Android(安卓)2.2.1系统广播大全
  5. android应用程序监听SMS Intent广播
  6. Android异步任务处理之AsyncTaskLoader的使用
  7. android 6.0 healthd vold接收uevent
  8. android 【九种对话框】的实现方式
  9. Android学习之Broadcast

随机推荐

  1. Android系统介绍及平台特性
  2. Android(安卓)学习资料分享(2015 版)
  3. Android权限管理之Permission权限机制及
  4. Android学习小结
  5. 大仙说道之Android(安卓)studio实现Servi
  6. Android使用Application总结
  7. Android的快速开发框架 afinal
  8. 获取Android设备上的详细的摄像头信息
  9. 4.2.2.5 Android如何检测网络的类型为3G
  10. Android内核的简单分析