android 广播的使用

在Activity中,注册广播的一个Demo。

总共分3步

第一步:定义一个BroadcastReceiver广播接收类:

[java] view
plain
copy

  1. private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){
  2. @Override
  3. public void onReceive(Context context, Intent intent) {
  4. String action = intent.getAction();
  5. if(action.equals(ACTION_NAME)){
  6. Toast.makeText(Test.this, "处理action名字相对应的广播", 200);
  7. }
  8. }
  9. };

第二步:注册该广播:

[java] view
plain
copy

  1. public void registerBoradcastReceiver(){
  2. IntentFilter myIntentFilter = new IntentFilter();
  3. myIntentFilter.addAction(ACTION_NAME);
  4. //注册广播
  5. registerReceiver(mBroadcastReceiver, myIntentFilter);
  6. }

第三步:触发响应

[java] view
plain
copy

  1. mBtnMsgEvent = new Button(this);
  2. mBtnMsgEvent.setText("发送广播");
  3. mBtnMsgEvent.setOnClickListener(new OnClickListener() {
  4. @Override
  5. public void onClick(View v) {
  6. Intent mIntent = new Intent(ACTION_NAME);
  7. mIntent.putExtra("yaner", "发送广播,相当于在这里传送数据");
  8. //发送广播
  9. sendBroadcast(mIntent);
  10. }
  11. });

-----最后附上完整代码:

[java] view
plain
copy

  1. package my.yaner;
  2. import android.app.Activity;
  3. import android.content.BroadcastReceiver;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.content.IntentFilter;
  7. import android.os.Bundle;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.Button;
  11. import android.widget.LinearLayout;
  12. import android.widget.Toast;
  13. public class Test extends Activity{
  14. private final String ACTION_NAME = "发送广播";
  15. private Button mBtnMsgEvent = null;
  16. protected void onCreate(Bundle savedInstanceState){
  17. super.onCreate(savedInstanceState);
  18. //注册广播
  19. registerBoradcastReceiver();
  20. LinearLayout mLinearLayout = new LinearLayout(this);
  21. mBtnMsgEvent = new Button(this);
  22. mBtnMsgEvent.setText("发送广播");
  23. mLinearLayout.addView(mBtnMsgEvent);
  24. setContentView(mLinearLayout);
  25. mBtnMsgEvent.setOnClickListener(new OnClickListener() {
  26. @Override
  27. public void onClick(View v) {
  28. Intent mIntent = new Intent(ACTION_NAME);
  29. mIntent.putExtra("yaner", "发送广播,相当于在这里传送数据");
  30. //发送广播
  31. sendBroadcast(mIntent);
  32. }
  33. });
  34. }
  35. private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){
  36. @Override
  37. public void onReceive(Context context, Intent intent) {
  38. String action = intent.getAction();
  39. if(action.equals(ACTION_NAME)){
  40. Toast.makeText(Test.this, "处理action名字相对应的广播", 200);
  41. }
  42. }
  43. };
  44. public void registerBoradcastReceiver(){
  45. IntentFilter myIntentFilter = new IntentFilter();
  46. myIntentFilter.addAction(ACTION_NAME);
  47. //注册广播
  48. registerReceiver(mBroadcastReceiver, myIntentFilter);
  49. }
  50. }
时间: 2024-12-24 16:46:03

android 广播的使用的相关文章

Android广播机制(转)

1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件内的消息通信(单个或多个线程之间): 2.同一app内部的不同组件之间的消息通信(单个进程): 3.同一app具有多个进程的不同组件之间的消息通信: 4.不同app之间的组件之间消息通信: 5.Android系统在特定情况下与App之间的消息通

Android 广播的生命周期  

一:Android 广播的生命周期          一个广播接收者有一个回调方法:void onReceive(Context curContext, Intent broadcastMsg).当一个广播消息到达接收者是,Android调用它的onReceive()方法并传递给它包含消息的Intent对象.广播接收者被认为仅当它执行这个方法时是活跃的.当onReceive()返回后,它是不活跃的. 有一个活跃的广播接收者的进程是受保护的,不会被杀死.但是系统可以在任何时候杀死仅有不活跃组件的进

Android总结篇系列:Android广播机制

1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件内的消息通信(单个或多个线程之间): 2.同一app内部的不同组件之间的消息通信(单个进程): 3.同一app具有多个进程的不同组件之间的消息通信: 4.不同app之间的组件之间消息通信: 5.Android系统在特定情况下与App之间的消息通

Android广播BroadcastReceiver

Android广播BroadcastReceiver Android 系统里定义了各种各样的广播,如电池的使用状态,电话的接收和短信的接收,开机启动都会产生一个广播.当然用户也可以自定义自己的广播. 既然说到广播,那么必定有一个广播发送者,以及广播接收器.系统广播的发送者为系统,自定义广播当然是用户定义的了. 我们可以定义一个广播接收器,用来接收我们感兴趣的广播,不论是系统广播还是用户自定义广播.这个广播接收器必须继承至BroadcastReceiver. 老规矩,先来点基础知识. 一.基础知识

Android广播之注册广播(包括静态广播和动态广播的注册)源码分析

Android广播按发送方式分类有三种:无序广播.有序广播(OrderedBroadcast)和粘性广播(StickyBroadcast). 静态广播的注册流程: 在系统服务启动时会添加PackageManagerService,在该类的构造方法中就会对各个应用安装目录的apk文件进行扫描解析.先看下时序图: 先看PackageManagerService类的构造方法: // Keys are String (package name), values are Package. This als

Android广播机制

1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件内的消息通信(单个或多个线程之间): 2.同一app内部的不同组件之间的消息通信(单个进程): 3.同一app具有多个进程的不同组件之间的消息通信: 4.不同app之间的组件之间消息通信: 5.Android系统在特定情况下与App之间的消息通

Android广播机制剖析【android广播系列一】

广播是android四大组件之一,所以广播的重要性也是显而易见的,最近需要做个功能,需要对广播的机制深入了解,所以我就整理下思路.平时我们写代码的时候,广播只是用来通知机制的,不是用来通信机制,通信机制还是要用binder机制来实现.但是现在市场上的第三方app大部分都是滥用广播,用广播来监听一些事件来实现自启动或者后台启动.这就误解了谷歌的意思.本来很好的组件,被大家滥用,导致用户老是感觉手机的程序控制不住,老是后台偷偷启动.小白用户甚至更不理解了.好了现在言归正传. android广播按发送

Android 广播与服务

一,广播2种不同的注册方式的选择: Andorid 广播有手动注册与清单文件注册2种方式: 清单文件注册,不需要在代码中进行任何操作,甚至不需要实例化广播接收者.因为Android将会创建实例并管理它的生命周期.注意的是,接收onReceive()调用的实例只有在onReceive()的持续时间内有效.实际上,每个对onReceive()方法的调用都有可能是在不同的广播接收实例上进行.意味着必须避免异步调用其它类. 手动注册,必须在不用时注销广播,如果在一个活动中注销失败会导致一个异常,其中An

Android广播机制分析

1.1. 广播简介 Android 广播与生活中的广播概念不同,它是指系统中产生事件后的通知.Android 广播不关心接收者是否收到处理或者如何处理广播,可以说是一种单向的通知.        Android 通过 BraodcastReceiver 来监听系统发出的广播,不同的 BraodcastReceiver 通过设置不同的 fliter 来区分监听广播的类型.有些广播的监听需要相应的权限. 1.2. 注册广播 BraodcastReceiver 必须经过注册才能具有监听功能,注册的方式

Android 广播接收者 BroadcastReceiver

Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件内的消息通信(单个或多个线程之间): 2.同一app内部的不同组件之间的消息通信(单个进程): 3.同一app具有多个进程的不同组件之间的消息通信: 4.不同app之间的组件之间消息通信: 5.Android系统在特定情况下与App之间的消息通信. 从实现原理看上,Andro