zoukankan      html  css  js  c++  java
  • Android Service初始

    一、Service概念

           1.Service是一个应用程序组件

           2.Service没有图像化界面

           3.Service通常用来处理一些耗时比较长的操作

           4.可以使用Service更新ContentProvider;发送Intent通知以及启动系统的通知等。

    Service是Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序

    如果我们退出应用时,Service进程并没有结束,它仍然在后台运行。

    二、Service不是什么

           Service不是一个单独的进程,也不是一个线程。它和应用程序在同一个进程中(lx:共享同一进程?)。

    三、Service生命周期

    Android Service的生命周期不像Android中Activity那么复杂,它只继承了onCreate(),onStart(),onDestroy()三个方法

    第一次启动Service时,先后调用onCreate(),onStart()两个方法,当停止Service时,执行onDestroy()方法

    需要注意的是,如果Service已经启动了,再次启动Service时,不会执行onCreate()方法,而是直接执行onStart()方法。

    四、onStartCommand(Intent,int,int)方法:

    Android开发中,每调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理。
    我们注意到这个函数有一个int的返回值,官方文档中onStartCommand有4种返回值:
    START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会调用onStartCommand(Intent,int,int)方法。如果在此期间没有任何启动命令被传递到service,那么参数Intent将为null。
    START_NOT_STICKY:“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务。
    START_REDELIVER_INTENT:重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入。
    START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保证服务被kill后一定能重启。
  • 相关阅读:
    洛谷 P1194 飞扬的小鸟 题解
    洛谷 P1197 星球大战 题解
    洛谷 P1879 玉米田Corn Fields 题解
    洛谷 P2796 Facer的程序 题解
    洛谷 P2398 GCD SUM 题解
    洛谷 P2051 中国象棋 题解
    洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
    洛谷 P1004 方格取数 题解
    洛谷 P2331 最大子矩阵 题解
    洛谷 P1073 最优贸易 题解
  • 原文地址:https://www.cnblogs.com/lxsky/p/3679265.html
Copyright © 2011-2022 走看看