您的位置:首页 > 移动开发 > Android开发

创建、配置Service

2016-06-28 13:41 393 查看
Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它没有用户界面,所以绝不会到前台来。一旦Service被启动起来之后,它就与Activity一样。它完全具有自己的生命周期。关于程序中Activity与Service的选择标准是:如果某个程序组件需要在运行时向用户呈现某界面,或者该程序需要与用户交互,就需要使用Activity,否则就应该考虑使用Service了。

开发Service需要两个步骤:

定义一个继承Service的子类

package com.mystudy.kibi.service;

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

/**
* Created by KIBI熊 on 16/6/28.
*/
public class TestService extends Service{

/**
* 该方法是Service子类必须实现的方法.该方法返回一个IBinder对象,
* 应用程序可通过该对象与Service组建通信.
* @param intent
* @return
*/
@Override
public IBinder onBind(Intent intent) {
return null;
}

/**
* 当该Service第一次被创建后将立即回调该方法
*/
@Override
public void onCreate() {
super.onCreate();
}

/**
* 该方法的早期版本是 void onStart(Intent intent, int startId),
* 每次客户端调用startService(Intent intent)方法启动该Service时
* 都会回调该方法.
* @param intent
* @param flags
* @param startId
* @return
*/
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}

/**
* 当该Service上绑定的所有客户端都断开连接时将会回调该方法
*/
@Override
public boolean onUnbind(Intent intent) {
return super.onUnbind(intent);
}

/**
* 当该Service被关闭之前将会回调该方法
*/
@Override
public void onDestroy() {
super.onDestroy();
}
}


上面这个Service什么也没干,实际上它就是Service组件的框架,如果希望Service组件做某些事,那只要在onCreate()或onStartCommand()方法中定义相关业务代码即可。

在AndroidManifest.xml文件中配置该Service

定义了上面的Service之后,接下来需要在AndroidManifest.xml文件中配置该Service,配置Service使用< service …/> 元素。与配置Activity相似的是,配置Service时也可为< service …/> 元素拍之< intent-filter …/> 子元素,用于说明该Service可被那些Intent启动。

<service android:name="com.mystudy.kibi.service.TestService">
<intent-filter>
<action android:name="com.mystudy.kibi.service.TEST_SERVICE"/>
</intent-filter>
</service>


当该Service开发完成之后,接下来就可在程序中运行该Service了,Android系统中运行Service有如下两种方法:

通过Context的startService()方法

通过该方法启用Service,访问者与Service之间没有关联,即使访问者退出了,Service仍然运行。

通过Context的bindService()方法

使用该方法启用Service,访问者与Service绑定在了一起,访问者一旦退出,Service也就终止。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android