`
lj_gzy2014
  • 浏览: 18080 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

安卓四大组件之一-------Broadcast

 
阅读更多


              对于activity我们已经有了一定的了解了,但对于安卓的四大组件之一的Broadcast我们似乎没接触过。其实每天我们都在和它打交道,还记得这张图片吗?

                每当没网时,我们有没有想过手机怎么知道没网了呢?这一切等了解Braoadcast后,你就会明白了。

                安卓有一套完整的API,可以让用户自由接收和发送广播。接收广播需要广播接收器,而发送广播需要使用intent。Intent在前面我们已经接触过了,就不详细介绍了,待会直接看代码。那么就来看看广播接收器了。

                广播接收器怎么用呢?怎么创建一个广播接收器呢?其实很简单。

          1.动态注册监听网络的变化

          新建一个内部类NetworkChangeReceiver,并继承BroadcastReceiver。代码如下:

public class MainActivity extends Activity {

	private NetworkChangeReceiver networkChangeReceiver;
	private IntentFilter intentFilter;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		intentFilter = new IntentFilter();
		intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
		networkChangeReceiver = new NetworkChangeReceiver();//创建广播接收器实例
		registerReceiver(networkChangeReceiver, intentFilter);//注册网络监听广播
        
		findViewById(R.id.send).setOnClickListener(new View.OnClickListener(){

			@Override
			public void onClick(View arg0) {
				Intent intent=new Intent("android.app.action.ACTION_PASSWORD_FAILED");
				sendBroadcast(intent);
			}
			
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	class NetworkChangeReceiver extends BroadcastReceiver {

		@Override
		public void onReceive(Context context, Intent intent) {
			ConnectivityManager connectionManager = (ConnectivityManager)
					getSystemService(Context.CONNECTIVITY_SERVICE);
			NetworkInfo networkInfo = connectionManager.getActiveNetworkInfo();
			if (networkInfo != null && networkInfo.isAvailable()) {
				Toast.makeText(context, "network is available",
						Toast.LENGTH_SHORT).show();
			} else {
				Toast.makeText(context, "network is unavailable",
						Toast.LENGTH_SHORT).show();
			}
		}
	}
	@Override
	protected void onDestroy() {
		super.onDestroy();
		unregisterReceiver(networkChangeReceiver);//注销此网络监听广播
	}

}

            动态注册需要在onCreate方法中动态注册,并且要在onDestroy方法中销毁。当网络链接情况改变时,监听端口就会收到对应广播信号,onReceive方法就会调用。网络链接情况的改变是由安卓系统监控的,因此我们只要在程序中对它监听了,网络链接情况的改变时,系统就会发送广播,监听他的程序就会收到广播。

         是不是有了上述代码,程序就可以正常运行了呢?答案是否定的。这涉及到一个权限问题,程序要访问系统的网络状况,必须要有权限注册代码,下面这是访问网络的权限代码,要在AndroidManifest.xml中添加这一行

              <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

  

          2、静态注册

           静态注册时,我们要创建一个类BootCompleteReceiver继承BroadcastReceiver,并重写onReceive方法,除此之外,我们还要在AndroidManifest.xml中注册

 

 

<receiver android:name="com.example.learningtest1_broadcast.BootCompleteReceiver"
            >
            <intent-filter >
                <action android:name="android.app.action.ACTION_PASSWORD_FAILED"/>
            </intent-filter>
        </receiver>

 这样,也可以监听接收对应的广播。

 

 

  • 大小: 5.9 KB
分享到:
评论

相关推荐

    android 四大组件详细介绍

    Activity 是 Android四大组件中最复杂的,需要处理界面逻辑、事件响应、生命周期管理等多个方面。一个 Activity 占据当前的窗口,响应所有窗口事件,具备有控件、菜单等界面元素。 Service Service 服务是 Android...

    Android开发的四大组件

    在Android应用开发中,四大组件是构建应用程序的基础,它们分别是Activity、Service、BroadcastReceiver和ContentProvider,还有Intent作为组件间通信的重要桥梁。下面我们将逐一详细解释这些组件。 **Activity详解...

    android四大组件详解

    Android四大组件详解 Android 应用程序由一些零散的有联系的组件组成,通过一个工程 manifest 绑定在一起。在 manifest 中,描述了每一个组件以及组件的作用,其中有 6 个组件,它们是 Android 应用程序的基石: ...

    四大组件 Activity Service content provider broadcast receiver

    **定义:** Content Provider是Android中的四大组件之一,用于在不同应用间共享数据,提供了一种统一的方式来访问数据。 **功能与实现:** - **功能:** 允许应用程序之间的数据交换,如联系人信息、日历事件等。 -...

    android四大组件知识小结

    Android 四大组件是构建Android应用程序的核心部分,包括Activity、Service、BroadcastReceiver和ContentProvider。这些组件各自承担着不同的职责...理解并熟练掌握这四大组件,是成为一名合格的Android开发者的关键。

    3-ANDROID 四大组件.zip

    在Android操作系统中,四大组件是构建应用程序的核心元素。它们分别是:Activity、Service、Broadcast Receiver以及Content Provider。这四个组件各自承担着不同的职责,共同协作,为用户提供完整的功能体验。 1. ...

    Android四大组件快速入门

    ### Android四大组件快速入门 #### 一、概览 Android应用程序的设计原则是模块化和松耦合,这使得开发者能够创建灵活且可扩展的应用。在Android应用开发中,四大核心组件包括:Activities(活动)、Services(服务...

    Android中四大组件

    在Android操作系统中,四大组件是构建应用程序的核心元素,它们分别是Activity、Service、Content Provider和Broadcast Receiver。这四个组件各自承担不同的职责,共同构成了Android应用的基本架构。 1. Activity...

    android四大组件解释适合面试时候用到

    简要解释一下activity、 intent 、intent filter、service、Broadcast、BroadcaseReceiver

    Android代码-broadcast电池电量显示源码.zip

    - BroadcastReceiver是Android四大组件之一,用于接收系统或自定义广播事件。 - 它可以动态注册(在代码中注册,活动结束时自动注销)或静态注册(在AndroidManifest.xml中声明,即使应用后台运行也能接收到广播)...

    android-broadcast学习

    在Android系统中,BroadcastReceiver(广播接收者)是四大组件之一,它负责监听并响应系统或应用程序发布的广播意图(Intent)。本学习资料主要围绕“android-broadcast”这一主题,适合初学者入门。以下是对Android...

    Android四大组件之Broadcast Receiver

    文章目录Android四大组件之Broadcast Receiver概述广播接收器(Broadcast Receiver)Broadcast Receiver简介Broadcast Receiver的注册一. 静态注册二. 动态注册三. 本地广播发送Broadcast Receiver广播的三种发送...

    android四大组件简介学习教案.pptx

    【Android 四大组件详解】 ...理解和掌握这四大组件的使用,是成为一名合格的Android开发者的必备技能。在实际开发中,根据需求灵活运用这些组件,可以构建出功能丰富、用户体验良好的Android应用程序。

    移动安全系列教学下载共43份.zip

    Android安全开发基础--4--四大组件之广播(Broadcast Receiver).pdf Android安全开发基础--5--四大组件之内容提供器(Content Provider).pdf Android安全开发基础--6--进程间通信机制(IPC).pdf Android安全开发...

    android-simple-broadcast-receiver-app:简单的Android Broadcast Receiver使用示例

    在Android开发中,Broadcast Receiver(广播接收者)是四大组件之一,它负责监听系统或应用程序发送的广播消息,并在接收到这些消息时执行相应的操作。本项目“android-simple-broadcast-receiver-app”提供了一个...

    安卓四大组件——BroadcastReceiver(广播)

    在Android系统中,四大组件是应用开发的核心组成部分,它们分别是:Activity、Service、Content Provider以及我们今天要讨论的BroadcastReceiver(广播接收器)。BroadcastReceiver是一种轻量级组件,用于接收并响应...

Global site tag (gtag.js) - Google Analytics