android中广播的使用

  广播消息机制用于进行系统级别的消息通知,每个应用程序可以对感兴趣的广播进行注册,并且将接收广播的方法定义在广播接收器中(Broadcast)。

  广播可以分为标准广播和有序广播。

  注册广播的方法可以动态注册(在代码中进行注册)和静态注册(在清单文件中注册)

  我们也可以发布自己定义的广播,并接收。

  1.动态注册

  动态注册的过程:

1)先自己定义一个广播接收者,继承Broadcast。重写onReceive()方法。

  2)创建IntentFilter类,并添加要收听的广播。

  3)创建自定义的广播接收者,并进行注册。(一般都是在oncreate()方法中实现)

  4)取消注册广播接收者。(一般在onDestroy()方法中实现。

下面看具体实现的代码。

  

 1 public class MainActivity extends AppCompatActivity {
 2
 3
 4     IntentFilter intentFilter;
 5     MyBroadcastReceiver myBroadcastReceiver;
 6
 7     @Override
 8     protected void onCreate(Bundle savedInstanceState) {
 9         super.onCreate(savedInstanceState);
10         setContentView(R.layout.activity_main);
11
12         intentFilter = new IntentFilter();
13         intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
14
15         myBroadcastReceiver = new MyBroadcastReceiver();
16         registerReceiver(myBroadcastReceiver,intentFilter);
17     }
18
19
20
21
22     @Override
23     protected void onDestroy() {
24         super.onDestroy();
25         unregisterReceiver(myBroadcastReceiver);
26
27     }
28
29     class MyBroadcastReceiver extends BroadcastReceiver{
30
31         @Override
32         public void onReceive(Context context, Intent intent) {
33             Toast.makeText(context,"network is changed",Toast.LENGTH_LONG).show();
34         }
35     }
36 }

  2.静态注册

  静态注册过程比动态注册简单,只需要2步

  1)自己定义一个接收者类,继承Broadcast。

  2)在清单文件(AndroidManifest.XML)文件中添加相应的要接受的广播。

  具体的代码如下

  Java代码

1 public class PowerConnReceiver extends BroadcastReceiver {
2     @Override
3     public void onReceive(Context context, Intent intent) {
4
5        Toast.makeText(context,"power is connected ",Toast.LENGTH_LONG).show();
6     }
7 }

PowerConnReceiver

  AndroidManifest.XML中的代码

 1     <application
 2         android:allowBackup="true"
 3         android:icon="@mipmap/ic_launcher"
 4         android:label="@string/app_name"
 5         android:theme="@style/AppTheme" >
 6         <activity
 7             android:name=".MainActivity"
 8             android:label="@string/app_name" >
 9             <intent-filter>
10                 <action android:name="android.intent.action.MAIN" />
11
12                 <category android:name="android.intent.category.LAUNCHER" />
13             </intent-filter>
14
15
16         </activity>
17
18         <receiver android:name=".PowerConnReceiver">
19             <intent-filter>
20                 <action android:name="ANDROID.INTENT.ACTION.ACTION_POWER_CONNECTED"/>
21             </intent-filter>
22         </receiver>
23     </application>

  我们还可以自己定义广播,进行发送。不同的进程之间可以通过广播通讯,当然这是不被提倡的。

  

  

时间: 2024-08-02 02:45:21

android中广播的使用的相关文章

Android中广播的发送BroadcastReceiver

之前在进行Android开发的过程中,由于某些原因,对android中广播的注册等相关知识进行了回顾及总结.也查看了相关源码及写demo验证.发现对广播的认识更深了一层.下面将所学进行记录,以备随时查看. 这些内容在网上也参考了他人的博客,相关链接如下: [1].基于源码分析的系统发送广播的流程:http://blog.csdn.net/zhangyongfeiyong/article/details/52022935 (很详细,推荐) [2].静态注册无法接收广播的问题:http://blog

Android中广播接收者BroadcastReceiver详解

1. 接收系统的广播步骤 (1)  新建一个类继承BroadcastReceiver 以监听sd卡状态的广播接收者为例 1 public class SdCardBroadcastReceiver extends BroadcastReceiver { 2 3 @Override 4 public void onReceive(Context context, Intent intent) { 5 String action = intent.getAction(); 6 if("android

Android中 广播BroadcastReceiver

一.IP拨号器 activity_main.xml文件: 只有一个输入ip的文本框和一个保存按钮, <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_h

Android中 广播发送 和 接受 的简单示例

AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.broadcast" android:versionCode="1" android:vers

Android中广播的简单使用

//注册本地广播接受者 LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(getActivity()); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("test"); BroadcastReceiver mReceiver = new BroadcastReceiver() { @Overr

(转)Android 中LocalBroadcastManager的使用方式

发表于2个月前(2014-11-03 22:05)   阅读(37) | 评论(0) 0人收藏此文章, 我要收藏 赞0 1月10日 #长沙# OSC 源创会第32期开始报名 摘要 android中广播的作用非常大,对程序的运行起着非常重要的作用 LocalBroadcastManager Android中BroadcastReceiver主要用途有 发送通知,更新UI或者数据,应用程序间相互通信,监听系统状态(比如开机,网络等) Android中BroadcasetReceiver的注册方式 m

国内目前最全面的介绍——Android中的BroadCastReceiver

BroadCastReceiver 简介 (末尾有源码) BroadCastReceiver 源码位于: framework/base/core/java/android.content.BroadcastReceiver.java 广播接收者( BroadcastReceiver )用于接收广播 Intent ,广播 Intent 的发送是通过调用Context.sendBroadcast() . Context.sendOrderedBroadcast() 来实现的.通常一个广播 Inten

Android 中的消息传递,详解广播机制

--------------------------------------广播机制简介--------------------------------------------- Android中的广播机制非常灵活,Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这个程序也只会收到自己所关心的广播内容,这些广播可能是来自于系统的,也可能是来自于其他应用程序的. Android提供了一套完整的API,允许应用程序自由地发送和接受广播. Android中的广播主要可以分为两种类型,标

Android中通过进程注入技术修改广播接收器的优先级

前言 这个周末又没有吊事,在家研究了如何通过进程的注入技术修改广播接收器的优先级,关于这个应用场景是很多的,而且也很重要,所以就很急的去fixed了. Android中的四大组件中有一个广播:Broadcast 关于它的相关知识可以转战:http://blog.csdn.net/jiangwei0910410003/article/details/19150705 我们这里就不做太多解释了,现在来看一下问题: 知识前提 这篇文章和我之前介绍一篇文章: Andrdoid中对应用程序的行为拦截实现方