intent广播

1.创建一个intent,调用sendBroadcast()函数,把intent携带的信息广播出去,如果要在intent传递额外数据,可以用intent的putExtra()方法

 1 import android.app.Activity;
 2 import android.content.Intent;
 3 import android.os.Bundle;
 4 import android.view.View;
 5 import android.widget.Button;
 6
 7 public class FirstActivity extends Activity {
 8
 9     @Override
10     protected void onCreate(Bundle savedInstanceState) {
11         super.onCreate(savedInstanceState);
12         setContentView(R.layout.firstactivity_layout);// 设置页面布局
13         Button button = (Button) findViewById(R.id.button);// 通过ID值获得按钮对象
14         button.setOnClickListener(new View.OnClickListener() {// 为按钮增加单击事件监听器
15             public void onClick(View v) {
16                 String str = "this.is.the.first.broadcast";//将此字符串作为识别广播的标识符
17                 Intent intent = new Intent(str);// 创建Intent对象
18                 intent.putExtra("message","this is my first message with broadcast");
19                 sendBroadcast(intent);
20             }
21         });
22     }
23 }

2.广播消息发送后,利用broadcastReceiver监听广播消息,并且在AndroidManifest.xml文件中注册receiver标签。在broadcastReceiver接收到与之匹配的广播消息后,onReceive()方法会被调用;

 1 import android.app.Activity;
 2 import android.content.BroadcastReceiver;
 3 import android.content.Context;
 4 import android.content.Intent;
 5 import android.os.Bundle;
 6 import android.widget.Toast;
 7
 8 public class SecondActivity extends BroadcastReceiver {//接收广播要继承BroadcastReceiver
 9
10     @Override
11     public void onReceive(Context context, Intent intent) {//重写onReceive方法
12         // TODO Auto-generated method stub
13         String msg = intent.getStringExtra("message");//获取key为message里面的字符串的值
14         Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
15     }
16 }

3.在AndroidManifest.xml中进行广播过滤

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.mingrisoft"
 4     android:versionCode="1"
 5     android:versionName="1.0" >
 6
 7     <uses-sdk android:minSdkVersion="15" />
 8
 9     <application
10         android:icon="@drawable/ic_launcher"
11         android:label="@string/app_name" >
12         <activity android:name=".FirstActivity" > <!--发送广播方的类名-->
13             <intent-filter >
14                 <action android:name="android.intent.action.MAIN" />
15                 <category android:name="android.intent.category.LAUNCHER" />
16             </intent-filter>
17         </activity>
18
19             <receiver android:name=".SecondActivity"><!--接收广播方的类名 -->
20                 <intent-filter>
21                     <action android:name="this.is.the.first.broadcast"/><!--只接受带该字符串的intent广播-->
22                             <!--这与发送方(最上面的第一段代码)在初始化intent时作为参数的字符串是一致的-->
23                 </intent-filter>
24              </receiver>
25
26      </application>
27 </manifest>

通过在AndroidManifest.xml中,第21行代码,将第一段代码的发送方和第二段接收方的代码进行连接起来了,它就像一座桥梁。

时间: 2025-01-15 22:26:14

intent广播的相关文章

android应用程序监听SMS Intent广播

当设备接收到一条新的SMS消息时,就会广播一个包含了android.provider.Telephony.SMS_RECEIVED动作的Intent. 对于应用程序监听SMS Intent广播,首先需要添加RECEIVE_SMS权限.通过在应用程序manifest中添加一个uses-permission,如下面的片段所示: <uses-permission android:name="android.permission.RECEIVE_SMS"/> AndroidMani

Android中Intent详解(二)之使用Intent广播事件及Broadcast Receiver简介

通过第一篇的讲解,我们已经看到了如何使用Intent来启动新的应用程序组件,但是实际上他们也可以使用sendBroadcast方法来在组件间匿名的广播消息. 作为一个系统级别的消息传递机制,Intent可以在进程之间发送结构化的消息.因此,通过实现Broadcast Receiver来监听和响应应用程序内的这些Broadcast Intent. 通过使用Intent来广播一个事件,可以在不修改原始的应用程序的情况下,让我们开发人员对事件做出反应.Android大量使用了Broadcast Rec

Android中Intent具体解释(二)之使用Intent广播事件及Broadcast Receiver简单介绍

通过第一篇的解说,我们已经看到了怎样使用Intent来启动新的应用程序组件,可是实际上他们也能够使用sendBroadcast方法来在组件间匿名的广播消息. 作为一个系统级别的消息传递机制,Intent能够在进程之间发送结构化的消息. 因此,通过实现Broadcast Receiver来监听和响应应用程序内的这些Broadcast Intent. 通过使用Intent来广播一个事件,能够在不改动原始的应用程序的情况下.让我们开发者对事件做出反应.Android大量使用了Broadcast Rec

[android] 代码注册广播接收者&amp;利用广播调用服务的方法

利用广播调用服务里面的方法,间接的方式调用服务内部的方法,与现实中差不多,请媒体曝光 主界面里面 在界面创建的时候开启一下服务普通的startService()方法 发送一条广播出去 获取Intent对象,通过new出来 调用Intent对象的setAction()方法,参数:一般就是包名 调用sendBroadcast(intebt)方法,发送广播,参数:Intent对象 服务里面 新建一个MyService类继承系统的Service类 添加一个自定义的服务的方法callServiceMeth

品茗论道说广播(Broadcast内部机制讲解)(上)

侯 亮 1 概述 我们在编写Android程序时,常常会用到广播(Broadcast)机制.从易用性的角度来说,使用广播是非常简单的.不过,这个不是本文关心的重点,我们希望探索得再深入一点儿.我想,许多人也不想仅仅停留在使用广播的阶段,而是希望了解一些广播机制的内部机理.如果是这样的话,请容我斟一杯红茶,慢慢道来. 简单地说,Android广播机制的主要工作是为了实现一处发生事情,多处得到通知的效果.这种通知工作常常要牵涉跨进程通讯,所以需要由AMS(Activity Manager Servi

Android广播基础

广播在Android中的作用相当于学校的喇叭. 广播是一种跨进程的通讯方式,分为标准广播和有序广播.标准广播是一种完全异步的广播,这种广播的效率比较高,同时也意味着不会被拦截:有序广播则是一种完全同步的操作,广播接收器在接收该类型广播的时候是有序的,并且有权利拦截该广播. 动态注册: 1> 创建广播接收类,继承BroadcastReceiver,并重写父类onReceive方法: 2> 监听过滤器: IntentFilter intentFilter= new IntentFilter() ;

Android开发- Intent和Broadcast Receiver

Intent是一种消息传递机制,可以在应用程序内使用,也可以在应用程序间使用.可以用于: 使用类名显示启动一个特定的Service或者Activity. 启动Activity或者Service来执行一个动作的Intent,通常需要使用特定的数据,或者对特定的数据执行动作. 广播某个时间已经发生. 使用Intent来启动Activity 显式启动新的Activity Intent intent = new Intent(MyActivity.this, SelectHorseActivity.cl

我的Android 4 学习系列之Intent 和 Broadcast Reciever

目录 Intent 简介 使用隐式和显式Intent启动Activity.子Acitivity和Service 使用Linkify 使用Broadcast Intent 广播事件 使用 Pending Intent Intent Filter 和 Broadcast Reciever 简介 使用 Intent Filter 扩展应用程序的功能 监听 Broadcast Intent 监听设备状态改变 在运行时管理manifest Reciever Intent简介 Intent是一种消息传递机制

[转]Intent和PendingIntent的区别

intent英文意思是意图,pending表示即将发生或来临的事情. PendingIntent这个类用于处理即将发生的事情.比如在通知Notification中用于跳转页面,但不是马上跳转. Intent 是及时启动,intent 随所在的activity 消失而消失. PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadcast ,getService来得到pendingintent的实例,当前activity并不能马上启动它所包含的i