`
raymond.chen
  • 浏览: 1426529 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android广播的使用(一)

 
阅读更多

Android广播分为两个方面:广播发送者和广播接收者BroadcastReceiver。

BroadcastReceiver可以分为两种注册类型:静态注册和动态注册。

静态注册:直接在AndroidManifest.xml文件中进行注册。

动态注册:直接在代码中调用Context的registerReceiver函数。

 

动态注册:

Activity类代码:

 

public class MainActivity extends Activity {
	private static final String SERVICE_NAME = "com.seasy.android.MyRemoteService";
	private static final String BROADCAST_ACTION = "com.seasy.android.MyBroadcastReceiver";
	private MyBroadcastReceiver broadcastReceiver;
	private TextView txtMessage = null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		txtMessage = (TextView)findViewById(R.id.txtMessage);
		
		doRegisterReceiver();
		
		//启动Service
		Intent serviceIntent = new Intent(MainActivity.this, MyRemoteService.class);
        startService(serviceIntent);
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		doUnregisterReceiver();
	}
	
	/**
	 * 注册广播接收者
	 */
	private void doRegisterReceiver(){
		broadcastReceiver = new MyBroadcastReceiver();
        IntentFilter intentFilter = new IntentFilter(BROADCAST_ACTION);
        registerReceiver(broadcastReceiver, intentFilter);
	}
	
	/**
	 * 注销广播接收者
	 */
	private void doUnregisterReceiver(){
		unregisterReceiver(broadcastReceiver);
	}

	public TextView getTxtMessage() {
		return txtMessage;
	}

	//广播接收器类:收到广播消息后,将消息显示在界面的文本框中
	class MyBroadcastReceiver extends BroadcastReceiver {
		@Override
		public void onReceive(Context context, Intent intent) {
			String messageData = intent.getStringExtra("messageData");
			getTxtMessage().setText(messageData);
		}
	}
}

 

 

Service类代码:

public class MyRemoteService extends Service {
	private static final String BROADCAST_ACTION = "com.seasy.android.MyBroadcastReceiver";
	
	@Override
	public void onCreate() {
		super.onCreate();
		sendBroadcastMessage("Start Thrift Server");
	}
	
	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}
	
	/**
	 * 发送广播
	 */
	private void sendBroadcastMessage(String messageData){
		Intent intent = new Intent();
        intent.setAction(BROADCAST_ACTION);
        intent.putExtra("messageData", messageData);
        sendBroadcast(intent);
	}
}

 

在AndroidManifest.xml文件中添加如下配置信息:

<service android:name="com.seasy.android.MyRemoteService" android:exported="false"></service>

 

分享到:
评论

相关推荐

    android 广播简单的使用

    android 广播简单的使用

    Android广播onReceiver回调更新ui

    在实际开发中,这涉及到对Android广播机制的理解、广播接收器的注册与管理、onReceive()回调的使用以及安全地更新UI的策略。掌握这些知识点有助于构建一个能够及时响应系统事件并提供反馈的应用程序。

    Android广播的各种使用方式

    本教程将深入探讨Android广播的各种使用方式及其应用场景。 1. **注册方式** - **动态注册**:在代码中通过`registerReceiver()`方法注册BroadcastReceiver,优点是可以随时注册和注销,减少内存占用。但缺点是...

    android广播事件处理

    Android广播系统基于发布-订阅模式,使得任何应用都可以发送广播,而其他应用可以通过注册接收器来监听并响应这些广播。本文将深入探讨Android广播事件处理的相关知识点。 一、广播类型 1. 系统广播:由Android...

    android广播时间处理机制

    3. 系统广播事件的处理:Android系统提供了一系列预定义的广播事件,例如`ACTION_TIME_CHANGED`、`ACTION_DATE_CHANGED`等。当这些事件发生时,系统会自动发送广播,开发者可以在`AndroidManifest.xml`中注册对应的...

    Android广播机制详解

    本文将详细解析Android广播机制的核心概念、工作原理以及如何使用。 一、广播基本概念 1. 广播Intent:广播Intent是Android系统中用于发送和接收广播消息的对象。它包含一个动作(Action)、数据(Data)、类型...

    Delphi Android 广播事件处理

    在Android开发中,广播事件(Broadcast)是一种全局的消息传递机制,允许应用程序之间或者系统与应用程序之间进行通信。在本文中,我们将深入探讨如何使用Delphi这个强大的RAD(快速应用开发)工具来处理Android系统...

    android广播小例子

    在这个"android广播小例子"中,我们将探讨如何创建和使用广播接收器。 首先,我们需要在AndroidManifest.xml文件中注册我们的广播接收器。注册分为静态注册和动态注册两种方式。静态注册是在manifest文件中添加标签...

    android广播简单使用

    本文将深入探讨“android广播简单使用”,基于提供的编译成功的演示项目“boardcase”进行讲解。 首先,Android广播分为两种类型:系统广播和自定义广播。系统广播是由系统触发的事件,如开机、网络状态改变等;...

    android-关于广播机制的使用

    本篇将详细介绍Android广播的使用方法及其相关知识点。 一、广播的基本概念 1. 广播Intent:广播Intent是广播机制的核心,它包含了一个动作(Action)、数据(Data)、类别(Category)等信息,用于描述要广播的...

    Android利用蓝牙广播数据

    在Android平台上,蓝牙技术是一种广泛使用的短距离无线通信方式,特别是在设备间的数据交换和通信方面。本文将深入探讨如何在Android设备上利用蓝牙广播数据,以及这种技术在Android与可穿戴设备之间的通信应用。 ...

    android的广播机制和广播的简单使用

    首先,理解Android广播机制的核心概念。Android系统会发送各种广播Intent,比如设备启动、网络状态改变等。这些Intent可以被任何注册了对应意图过滤器的BroadcastReceiver所接收。BroadcastReceiver是Android中处理...

    Android广播开发规范.docx

    android广播的类型,已经广播使用规范,android N广播变化

    Android 本地广播示例

    在Android开发中,广播是一种非常重要的组件,用于在应用程序之间传递消息。本地广播(Local Broadcast)是广播机制的一个子集,它只限于在应用程序内部通信,不涉及到系统全局的广播接收者。本地广播相比全局广播...

    android 广播接收完整源码

    在提供的源码中,可能包含了广播接收器的创建、注册、IntentFilter的设置以及onReceive()方法的实现等内容,通过分析这些代码,你可以深入理解Android广播接收器的工作原理和用法。如果源码包含了一些特殊功能或优化...

    Android广播实现代码

    总的来说,Android广播是应用程序间通信的一种重要方式,理解并掌握其工作原理和使用方法对于开发高效且稳定的Android应用至关重要。"AndroidBroadcastDemo"这个源码示例将帮助你更好地理解和实践这一关键概念。

    android 跨应用程序广播发送接受

    在Android中,你可以使用`sendBroadcast()`方法来发送一个广播意图(Intent)。以下是一个简单的示例: ```java Intent intent = new Intent("com.example.MY_BROADCAST_ACTION"); sendBroadcast(intent); ``` 在...

    android 广播,界面传值示例

    广播是Android系统中的一种全局通知机制,用于在应用程序之间传递消息。界面传值则涉及到Activity、Fragment或者Service之间的数据交换。在这个"android 广播,界面传值示例"中,我们将深入探讨这两个主题。 首先,...

    android 广播实例,可以收发

    本教程将深入探讨Android广播的使用,包括如何创建、发送和接收广播,以及如何在广播接收器中更新界面元素。 一、广播的基本概念 1. 广播Intent:广播是通过Intent对象来传递的,可以携带数据,使得信息能够在多个...

Global site tag (gtag.js) - Google Analytics