Android 之Service的使用及生命周期

关于Android中的Service的使用,首先要明白Service的生命周期,开发Service的步骤与Activity的步骤很像,开发Service组件需要先开发一个Service的子类,然后在AndroidManifest.xml中配置该Service。

首先,先来说一下Service的生命周期:

正如Activity一样,Service也有自己的一套生命周期函数,在Android中,运行Service有两种方法:

(1) 通过Context的startService()方法:通过该方法启动Service,那么即使访问者退出了,Service仍然在运行着,因为访问者与Service之间没有关联;

(2) 通过Context的bindService()方法:通过该方法启动Service,访问者与Service绑定在一起,访问者一旦退出了,Service也就终止。

  service整体的生命时间是从onCreate()被调用开始,到onDestroy()方法返回为止。

  和activity一样,service在onCreate()中进行它的初始化工作,在onDestroy()中释放残留的资源。

  那么如何来使用第二种运行方式来运行一个Service呢?

  每一个被创建好的Service都潜在的允许绑定,所以一个被开启的Service仍然可能被绑定的,

  调用被绑定的service是当其他组件(一个客户)调用bindService()来创建的,客户可以通过一个IBinder()接口和service进行通信。

  客户可以通过 unbindService()方法来关闭这种连接,一个service可以同时和多个客户绑定,当多个客户都解除绑定之后,系统会销毁service。

  

  通过下边的这张图洗完可以更好的帮助理解一下Service的周期。

  

  下边的类定义了一个Service组件,虽然这个Service什么事情也没干,但实际是那个它是Service组件的框架,如果希望Service做某些事情,那么只要在onCreate()或onStartCommand()方法中定义响应的恶业务代码即可。

public class MyFirstService extends Service {
    private String  Tag = "MyFirstService";

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
         Log.v(Tag, "Service is Created");
        super.onCreate();
    }
    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
          Log.v(Tag, "Service is Destroy");
        super.onDestroy();
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
         Log.v(Tag, "Service is Started");
        return super.onStartCommand(intent, flags, startId);
    }
    @Override
    public boolean onUnbind(Intent intent) {
        // TODO Auto-generated method stub
        Log.v(Tag, "start onUnbind~~~");
        return super.onUnbind(intent);
    }

}

定义了上边的Service之后,需要在AndroidManifest.xml中被指该Service:

  <service android:name="com.example.service.MyFirstService" />
时间: 2024-10-09 23:38:01

Android 之Service的使用及生命周期的相关文章

Android四大基本组件介绍与生命周期介绍。

Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity : 应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应. Activity之间通过Intent进行通信.在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据. 典型的动作类型有:M AIN(activity的门户).V

关于Android四大基本组件介绍与生命周期(转)

Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity : 应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应. Activity之间通过Intent进行通信.在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据. 典型的动作类型有

【转】Android开发之旅:组件生命周期

组件生命周期(一) 引言 应用程序组件有一个生命周期——一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生命周期将讨论活动.服务.广播接收者的生命周期——包括在生命周期中他们可能的状态.通知状态改变的方法.及这些状态的组件寄宿的进程被终结和实例被销毁的可能性. 本文主要讨论活动的生命周期及他们可能的状态.通知状态改变的方法.分为以下三部分: 1.活动生命周期 2.保存活动状态 3.协

Android四大基本组件介绍与生命周期

主要参考: 1.http://blog.csdn.net/android_tutor/article/details/5772285 2.http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html Android四大基本组件介绍与生命周期,布布扣,bubuko.com

【Android 初学】9、Activity生命周期

Start Android  1.如何在一个应用程序当中定义多个Activity 1)定义一个类,继承Activity 2)在该类当中,复写Activity当中的onCreate方法 3)在AndroidMainfest.xml文件当中注册该Activity(android程序中所有的控件都要在次注册) 2.启动一个Activity 1)生成一个意图对象(Intent) 2)调用setClass方法设置所要启动的Activity 3)调用startActivity方法启动Activity 3.A

Android系列教程之Activity的生命周期

通过上一节"Android系列教程之Android项目的目录结构"我们已经知道了什么是Activity,那么为什么我们创建一个Activity的导出类的时候为什么都要覆盖Activity的onCreate方法呢,为什么会在onPause()方法中保存一些当前Activity中的变化,要弄明白这些就要先了解Activity的生命周期,也就是一个Activity才开始到结束都要经过那些状态,下面通过一个例子了解Activity的声明周期. 一:Activity的生命周期方法 Android

【Android】11.1 Activity的生命周期和管理

分类:C#.Android.VS2015: 创建日期:2016-02-21 一.基本概念 1.必须理解这些方法,否则你编的程序根本就没法在实际项目中使用 当然,如果仅仅是为了玩玩,或者仅仅是作为例子为了专注于介绍某个知识点而有意忽略其他的实现细节,那就另当别论了. Android应用程序可自动创建.暂停.恢复.销毁Activity,下图是典型的Activity生命周期(虽然不同资料画的图不一样,但殊途同归,目的都是为了帮助理解): 要创建一个自定义的Activity,必须创建一个父类为Activ

【Android基础篇】Activity的生命周期

Google开发者文档 http://developer.android.com/reference/android/app/Activity.html 应用的每个页面都是一个Activity,这些Activity都存放在一个Activity栈中,每次进入某个应用或者应用的某个界面时,新界面这个Activity就压入到Activity栈的顶部:退出或返回的时候就把栈顶的Activity弹出,之前的Activity就又到了栈顶. Activity生命周期里的四个状态 - Running : Act

android学习四(Activity的生命周期)

要学好活动(Activity),就必须要了解android中Activity的声明周期,灵活的使用生命周期,可以开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈.栈的特性是后进先出,在默认的情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置.而每当我们按下Back键或调用finish方法去销毁一个活动时,处于栈顶的活动会出栈,这时前一个入栈的活动就会重新处于栈顶的位置.系统总是会显示处于栈顶的活动给用户