Android中service的生命周期

Service作为Android四大组件

  • Service
  • Activity
  • ContentProvider
  • BroadcastReceiver


之一,应用非常广泛,和Activity一样,Service也有一系列的生命周期回调函数。


1.生命周期流程图:


  • onCreate():

    首次创建服务时,系统将调用此方法。如果服务已经运行,则不会调用此方法,该方法只调用一次。


  • onStartCommand():

    当另一个组件通过调用starService()请求启动服务时,系统将调用此方法。


  • onDestroy():

    当服务不在使用且将被销毁时,系统将调用此方法。


  • onBind():

    当另一个组件通过调用bindService()与服务绑定时,系统将调用此方法。


  • onUnbind():

    当另一个组件 通过调用unbindService()与服务解绑时,系统将调用此方法。


  • onRebind():

    当旧的组件与服务解绑后,另一个新的组件与服务绑定时,onUnbind()返回true时,系统将调用此方法。


2.生命周期方法

在Service的生命周期中,常用的方法有:

  • 手动调用的方法:
手动调用的方法 作用
startService() 启动服务
stopService() 关闭服务
bindService() 绑定服务
unbindService() 解绑服务
  • 自动调用的方法
自动调用方法 作用
onCreat() 创建服务
onStartCommand() 开始服务
onDestroy() 销毁服务
onBind() 绑定服务
onUnbind() 解绑服务

3.生命周期的调用

  1. 启动Service服务

    单次:startService()->onCreate()->onStartCommand()

    多次:startService()->onCreate()->onStartCommand()->onStartCommand()

  2. 停止Service服务

    stopService() —> onDestroy()

  3. 绑定Service服务

    bindService() —> onCreate() —> onBind()

  4. 解绑Service服务

    unbindService() —> onUnbind() —> onDestroy()

  5. 启动绑定Service服务

    startService() —> onCreate() —> onStartCommand() —> bindService() —> onBind()

  6. 解绑停止Service服务

    unbindService() —> onUnbind() —> stopService() —> onDestroy()

  7. 解绑绑定Service服务

    unbindService() —> onUnbind(ture) —> bindService() —> onRebind()

参考资料

原文地址:https://www.cnblogs.com/charlottepl/p/12545594.html

时间: 2024-10-11 13:47:28

Android中service的生命周期的相关文章

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中activity的生命周期以及使用场景

#1完整生命周期代码如下. package com.wzw.lifecycle; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class MainActivity extends Activity { //被创建的时候调用的方法 @Override protected void onCreate(Bund

18_Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用

?? 1 绑定服务(本地的方式),要做如下的案例: 操作步骤:"先点击绑定服务",再点击"调用服务里面的方法",然后查看服务的执行情况. 2编写Android清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" pack

Android中Activity的生命周期

protected void onCreate(Bundle savedInstanceState):当Activity的实例被启动是调用的第一个方法. protected void onStart():该方法在onCreate()方法被调用,或者在Activity从Stop状态转为Actived的状态时调用. protected void onResume():在Activity从Paused状态转到Actived状态时被调用. protected void onPaused():在Activ

android中 activity的生命周期

activity的生命周期: 1 : onCreate() --活动第一次被创建时调用,应该在这方法中完成活动初始化操作,如:加载布局,绑定事件 2 : onStart() --活动由不可见变为可见的时候调用 3 : onResume() --活动准备好和用户进行交互的时候调用,此时活动一定位于栈顶,处于运行状态 4 : onPause() --系统准备去启动或者恢复另一个活动的时候调用,通常可以在这个方法中将消耗CPU的资源释放掉 保存一些关键数据,但这个方法执行速度一定要快,不然会影响新的栈

android中 碎片的生命周期

碎片的生命周期: 1 . onAttach() : 当碎片与活动建立关联是调用 2 . onCreateView() : 用于创建碎片的视图 3 . onActivityCreated() : 当活动的onCreate()方法返回时调用 4 . onDestroyView() : 当碎片的视图被移除时调用 5 . onDetach() : 当碎片于活动的关联被移除时调用 触发 : 1 . 碎片被创建时 : onAttach() onCreate() onCreateView() onActivi

android中view的生命周期

请参见:http://ndquangr.blogspot.jp/2013/04/android-view-lifecycle.html Category Methods Description Creation Constructors There is a form of the constructor that are called when the view is created from code and a form that is called when the view is in

Service的生命周期与Activity生命周期区别

组件的生命周期 应用程序组件都有一个生命周期,从响应Intent的Android实例开始到这个实例被销毁.在这期间,他们或许有效或许无效,有效时或许对用户可见或许不可见.下面我们就来讨论四个基本组件的生命周期,包括在生命周期内的各种状态,以及状态之间的转换.这几种状态可能的结果是:进程让他们停止, 然后实例被销毁.  一.activity生命周期     一个activity有三个基本的状态:  @ 当activity在前台运行时(在activity当前任务的堆栈顶),为活动或者运行状态.这时a

Android中Service生命周期

这几天面试的时候,反复被问到一个关于Service的问题. 之前做了一个APP.有一个应用场景是,需要开机启动一个Service,在Service中另开一个线程,去对比用户配置中的时间,作出及时提醒. 然后面试的时候在描述该做法时就被问到一个问题,如果Service被系统或者其他应用kill了怎么办?我当时的回答是,在onDestroy中去处理.面试官说,onDestroy并不会被调用. 面试的详情暂且不表,在后期会专门写面经.现在讨论这个问题,Service被kill后生命周期是怎样的. OK