在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能够接受的广播。

更多相关文章

  1. Android(安卓)键盘挤压 按钮
  2. 安卓广播监听USB插拔
  3. android 关于程序升级问题
  4. Android开机广播和关机广播
  5. Cocos2d-x3.3RC0加载Android的WebView
  6. Android(安卓)BroadcastReceiver介绍
  7. android开发每日汇总【2011-10-17】
  8. android 关于程序升级问题
  9. android背景选择器selector用法、自定义Button按钮样式.........

随机推荐

  1. 【校招宝典】双非腾讯亲自分享的Android
  2. Android(安卓)12上焕然一新的小组件:美观
  3. 菜鸟多了我们就有价值了,Android开发没前
  4. 都2020年了你居然还学Android?程序员没有
  5. Android(安卓)输入事件一撸到底之源头活
  6. android操作联系人Contacts
  7. 【Unity和Android相互调用】AndroidJavaP
  8. Android(安卓)贝塞尔曲线,撒花了
  9. Android图形显示系统——上层显示1:界面绘
  10. android之检查service运行状态函数