`

使用BroadCast 使 service 和activity 信息交互

 
阅读更多
package com.su.testbroadcast;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.TextView;

public class TestBroadCastActivity extends Activity {
	private TextView textView;
	private ChangeReceiver changeReceiver;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		textView = (TextView) findViewById(R.id.textView1);
		registerBroadcast();

		Intent service = new Intent(TestBroadCastActivity.this, MyService.class);
		startService(service);

	}
	
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		unregisterReceiver(changeReceiver);//解除接受者
	}

/**
 *  为BroadcastReceiver指定action,使之用于接收同action的广播
 */
	private void registerBroadcast() {
		
		IntentFilter intentFilter = new IntentFilter();
		intentFilter.addAction("com.su.testbroadcast"); 
		changeReceiver = new ChangeReceiver();
		registerReceiver(changeReceiver, intentFilter);
	}

	
	public class ChangeReceiver extends BroadcastReceiver {//实现接受者

		@Override
		public void onReceive(Context context, Intent intent) {
			String title = intent.getStringExtra("msg");
			textView.setText(title);

		}

	}

}
package com.su.testbroadcast;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

public class MyService extends Service {

	@Override
	public void onCreate() {
		super.onCreate();
		//發送廣播
		Intent intent = new Intent("com.su.testbroadcast");
		intent.putExtra("msg", "msg from service");
		sendBroadcast(intent);
	}

	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		return null;
	}

}



分享到:
评论

相关推荐

    Service和Activity通过Broadcast共享数据

    "Service和Activity通过Broadcast共享数据"就是解决这种需求的一种常见方式。Broadcast(广播)是Android系统中的一个关键组件,它允许应用程序在不直接互相通信的情况下发送和接收消息。 首先,我们来了解什么是...

    Android Service与Activity交互

    本示例"Android Service与Activity交互"旨在演示如何在Service启动后,通过线程进行异步操作,并在完成特定任务后,通过发送广播(Broadcast)通知Activity来更新用户界面。 首先,我们需要创建一个Service,通常在...

    Service与多个Activity交互

    这种机制使得Service可以在后台无须直接与Activity交互的情况下传递信息,实现组件间的解耦。 **Service与Activity交互的场景:** 1. **启动Service:** Activity可以通过startService()方法启动一个Service,...

    activity service 数据交互

    现在,我们聚焦于"broadCastService"这个文件,这很可能是一个示例,展示了如何使用BroadcastReceiver进行数据交互。BroadcastService通常会包含一个实现了BroadcastReceiver的类,用于接收和处理自定义广播。在...

    android多个activity和一个service通信

    Activity代表用户界面,而Service则用于在后台执行长时间运行的任务,不直接与用户交互。在实际项目中,常常需要多个Activity与一个Service进行通信,比如本例中提到的“service在后台下载”场景。这种通信机制对于...

    Android-Service与Activity传值

    - **使用BroadcastReceiver**:`Service`通过发送Broadcast,`Activity`注册BroadcastReceiver来接收数据。`Service`创建一个`LocalBroadcastManager`实例,发送广播;`Activity`在需要接收数据的地方注册Receiver...

    四大组件 Activity Service content provider broadcast receiver

    ### 四大组件详解:Activity、Service、Content Provider与Broadcast Receiver #### 一、Activity **定义:** Activity是Android应用程序中的四大基本组件之一,它代表一个屏幕界面,用户可以直接与其进行交互。每...

    初识 Service(三) 演示:Service给 Activity传递消息

    4. **使用Handler和Runnable**: 在Activity中创建一个Handler,并将Runnable对象放入消息队列,然后在Service中通过Looper和Handler发送一个Runnable到Activity,Activity会在合适的时机执行Runnable中的逻辑。...

    Activity、BoradcastReceiver、Service综合Demo

    在Android应用开发中,Activity、BroadcastReceiver和Service是三大核心组件,它们构成了应用程序与用户交互、后台处理以及系统间通信的基础。本综合Demo旨在详细解析这三者如何协同工作,特别是涉及广播的静态注册...

    service与activity之间的通信

    对于更复杂的交互,可以使用AIDL定义接口,让Service与Activity之间可以跨进程通信。AIDL文件定义了接口和方法,编译后会自动生成对应的Java代码,使得双方都能调用对方的方法。 总结,Service与Activity之间的通信...

    android service 通过broadcast通知activity.zip

    Service可以通过发送Broadcast来通知Activity,即使Activity不在前台运行,也能接收到Service传递的信息。 创建BroadcastReceiver有两种方式:静态注册和动态注册。静态注册是在AndroidManifest.xml文件中定义...

    service之service传递数据给Activity

    启动服务则是在后台执行一个任务,通常不直接与Activity交互,但可以通过BroadcastReceiver或ContentProvider传递数据。 **1. 绑定服务** 绑定服务通过实现IBinder接口来创建服务端接口。在Service中,我们需要...

    Android Service与Activity会话Demo

    在Android应用开发中,Service和Activity是两个非常重要的组件,它们分别用于后台长时间运行的任务和服务交互。本示例"Android Service与Activity会话Demo"旨在教你如何在Android Studio中实现Service与Activity之间...

    Android创建Service后台常驻服务并使用Broadcast通信

    3. 使用Binder:如果需要在Service和Activity之间进行更复杂的交互,可以使用`IBinder`接口实现 Binder 对象,通过AIDL(Android Interface Definition Language)定义接口,实现进程间通信(IPC)。 总结,Android...

    service把数据传给activity

    5. **使用EventBus**: 第三方库如EventBus提供了一种发布/订阅模式,使Service和Activity之间的通信更加简单。Service发布事件,Activity作为订阅者接收到事件。 ```java // 在Service中 EventBus.getDefault()....

    Service通过广播向多个Activity传值

    在Demo111这个示例项目中,可能包含了实现这一功能的代码文件,包括Service、Activity以及BroadcastReceiver的定义和使用。通过查看和分析这些代码,开发者可以更深入地理解如何在实际开发中实现Service通过广播向多...

    Android课程设计-记事本(Activity,Service,Broadcast Receiver,Provider)实现

    Service, Broadcast Receiver, Provider)实现”即是在这样的背景下提出的,旨在通过一个记事本应用的设计与开发,使学生能够综合运用Android的四大组件:Activity、Service、Broadcast Receiver和Content Provider...

    activity实时更新service传来的消息

    如果你的应用使用了Android架构组件,LiveData和ViewModel可以提供一种响应式的方式让Service与Activity通信。Service可以更新LiveData对象,而Activity作为LiveData的观察者,会在数据改变时自动更新UI。 9. **...

    利用广播Broadcast Receiver,在2个不同的Activity传递数据

    在Android应用开发中,BroadcastReceiver是一种非常重要的组件,它允许应用程序在不直接交互的情况下接收和响应系统或自定义广播事件。本教程将深入探讨如何利用BroadcastReceiver在两个不同的Activity之间传递数据...

    android的 Intent、Activity、Service的使用和数据访问 小例子

    在Android应用开发中,Intent、Activity和Service是三个至关重要的组件,它们构成了应用程序的主要功能框架。下面我们将详细探讨这三个概念以及如何在实际项目中使用它们。 1. **Intent(意图)** Intent是Android...

Global site tag (gtag.js) - Google Analytics