Android---41---Service简介



Service  是Android四大组件中与Activity最相似的组件。

Service与Activity的区别是:Service一直在后台运行,它没有用户界面。

我们所见的与用户进行交互的界面属于Activity,而Activity要实现的功能就要靠背后默默工作的Service。

比如说,发送短信的功能,让我们输入对方手机号以及要发送的内容,这些就属于Activity,而真正的

去发送短信的还是靠SmsManager。

创建、配置Service:

定义一个继承Service的子类。

在配置文件中配置该Service。

Service中的方法:

@Override
public IBinder onBind(Intent intent) {

	return null;
}

这是Service子类必须实现的方法,返回一个IBinder,应用程序通过该对象与Service组件进行通信。

@Override
public void onCreate() {

	super.onCreate();
}

第一次创建将立即回调该方法。

@Override
public void onDestroy() {

	super.onDestroy();
}

当Service被关闭之前将会回调该方法

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

	return super.onStartCommand(intent, flags, startId);
}

每次客户端调用srartService(Intent) 方法启动该Service的时候都会回调该方法。

@Override
public boolean onUnbind(Intent intent) {

	return super.onUnbind(intent);
}

当该Service上绑定的所有客户端都断开连接时 将会回调该方法。

public class MainActivity extends Service {

	/*
	 * (non-Javadoc)
	 *
	 * @see android.app.Service#onBind(android.content.Intent)
	 *
	 * 必须实现的方法
	 */
	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		return null;
	}

	/*
	 * (non-Javadoc)
	 *
	 * @see android.app.Service#onCreate()
	 *
	 *
	 * 被创建的时候回调
	 */
	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		super.onCreate();
	}

	/*
	 * (non-Javadoc)
	 *
	 * @see android.app.Service#onDestroy() 被关闭之前回调
	 */
	@Override
	public void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
	}

	/*
	 * (non-Javadoc)
	 *
	 * @see android.app.Service#onStartCommand(android.content.Intent, int, int)
	 * 被启动的时候回调
	 */
	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		// TODO Auto-generated method stub
		return super.onStartCommand(intent, flags, startId);
	}

	/*
	 * (non-Javadoc)
	 *
	 * @see android.app.Service#onUnbind(android.content.Intent) 所有客户端都断开连接的时候回调
	 */
	@Override
	public boolean onUnbind(Intent intent) {
		// TODO Auto-generated method stub
		return super.onUnbind(intent);
	}
}

Service的配置与Activity几乎一样。

<service android:name=".MainActivity" >
    <intent-filter>
	<action android:name="com.example.servicedemo" />
    </intent-filter>
</service>

运行Service:

运行Service有两种方式:

运行Service有两种方式:

1.通过Contex的startService ()方法:

通过该方法启动Service,访问者与Service之间没有关联,计时访问者退出了,Service仍然运行

2.通过Contex的bindService()方法:

使用该方法启动Service,访问者与Service绑定在了一起,访问者一旦退出,Service也就终止。

时间: 2024-08-29 09:41:07

Android---41---Service简介的相关文章

android Service简介及启动关闭方式

(1)Service是Android系统中的四大组件之一,和Activity是同一层次的组件:它是一种生命周期较长,没有可视化界面,运行于后台的一种服务:例如,我们听音乐可以使用Service,下载东西可以使用Service,我们还可以用它来记录我们所在地理位置的改变,或者启动一个服务来一直监听某种动作:我们还可以使用Service更新Content Provider,发送Intent以及启动系统的通知等: (2)Service生命周期不太复杂,它只继承了onCreate(),onStartCo

Android Web Service学习总结(二)

上篇文章做好了准备工作,现在就实践(android平台调用web service实现号码归属地查询) 1.    Ksoap2-android简介 在Android平台调用web service需要依赖于第三方类库ksoap2,它是一个SOAP Web service客户端开发包,主要用于资源受限制的Java环境如Applets或J2ME应用程序(CLDC/ CDC/MIDP).在Android平台中我们并不会直接使用ksoap2,而是使用ksoap2 android.KSoap2 Androi

Android网络通讯简介

网络通信应该包含三部分的内容:发送方.接收方.协议栈.发送方和接收方是参与通信的主体,协议栈是发送方和接收方进行通信的契约.按照服务类型,网络通信可分为面向连接和无连接的方式.面向连接是在通信前建立通信链路,而通信结束后释放该链路.无连接的方式则不需要在通信前建立通信连接,这种方式不保证传输的质量. Android提供了多种网络通信的方式,如Java中提供的网络编程,在Android中都提供了支持.Android中常用的网络编程方式如下: 针对TCP/IP协议的Socket和ServerSock

Android 测试Service的生命周期

1 package com.example.myapp4; 2 3 import android.support.v7.app.ActionBarActivity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.view.Menu; 7 import android.view.MenuItem; 8 import android.view.View; 9 import android.w

Android Web Service学习总结(一)

最近学习android平台调用webWebService,学习了一篇不错的博客(http://blog.csdn.net/lyq8479/article/details/6428288),可惜是2011年时的方法,而不适合现在android4.0之后的android版本,所以通过一番学习和研究,总结如下. web Service简介 通俗的理解:通过使用WebService,我们能够像调用本地方法一样去调用远程服务器上的方法.我们并不需要关心远程的那个方法是Java写的,还是PHP或C#写的:我

Android中Service的使用

我个人的理解是:我们平时使用的android系统的app的后台应用,就是这个原理 可以利用Service实现程序在后台运行,依照这个原理,可以通过Service来实现关键代码的运行与实现. <一>下面大体说一下我在极客学院跟着视频做的一个Service的小实现 1,首先点击左上角file->new往下拉,看到一个Service,创建MyService.java 这个就是我们的Service服务. 后续可以在这其中添加想要在后台运行的关键代码等. 2,首先创建项目后,在layout或中的x

Android -- 启动Service并传递数据

本文主要记录Activity传递数据到Service. 1.效果图2.通过以上效果图,可以看出activity页面的数值改变,相应后台service输出的数值也跟着改变.3.核心代码如下,看代码中的38行,使用Intent作为载体,装载activity页面上的数据. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

Android 利用Service实现下载网络图片至sdk卡

1 package com.example.myapp5; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.view.View; 7 import android.widget.Button; 8 /** 9 * Android 利用service实现下载图片功能 10 * @author shaobn 11 * @date

Service简介 demos

extends:http://blog.csdn.net/ithomer/article/details/7364024 一. Service简介 Service是android 系统中的四大组件之一(Activity.Service.BroadcastReceiver.ContentProvider),它跟Activity的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互.service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序

【Android 系统开发】 Android 系统启动流程简介

Android 系统启动总结 : Android 系统启动分底层 Linux 内核启动 和 应用系统启动; -- 底层系统启动 : 系统上电, bootloader 启动, linux kernel 启动, init 进程启动; -- 应用系统启动 : init 进程启动关键的进程如 Zygote 进程 和 System Server 等系统服务, 之后进入 Home 界面; 一. Android 底层系统启动流程(Bootloader Kernel init) 1. 系统上电 执行 ROM 引