zoukankan      html  css  js  c++  java
  • Android中Service(服务)的使用

    进程的优先级
    ---------------------------------
    进程的优先级表现为:优先级越高,该进程的“生命力”就越强,反之,则越低,而低优先级的进程更容易被Android系统清除。
    进程的优先级从高到低为:
    1. 前台进程
    2. 可见进程
    3. 服务进程
    4. 后台进程
    5. 空进程


    Service(服务)
    ---------------------------------
    Service是Android系统的核心组件,由Android创建、维护和管理。
    Service需要在AndroidManifest.xml文件中注册。
    开发者所开发的所有Service都需要继承自android.app.Service类。
    Service是没有界面的,适用于在后台(表示看不见)执行耗时任务。
    尽管Service适合用于执行耗时任务,但是,Service仍然是运行在主线程的,所以,当执行任务时,应该开启子线程来完成。
    Service是单例的。


    开发Service的步骤
    ---------------------------------
    1. 自定义类继承android.app.Service,由于Service是抽象的,所以,实现继承关系后,自定义的类需要重写抽象方法onBind(),目前,无视该方法,仅保证该方法存在即可
    2. 打开AndroidManifest.xml文件,在<application>节点之下,添加<service>节点(与<activity>节点同级,且不区分先后顺序),并且至少配置<service>节点的android:name属性,该属性的值为自定义的Service类的完整名称,即包名+类名,例如cn.tedu.app.SampleService


    启动Service
    ---------------------------------
    在任何ContextWrapper的子类(例如Activity)中,调用startService(Intent intent)方法,即可激活Service组件


    关闭Service
    ---------------------------------
    方法1:在任何ContextWrapper的子类中,调用stopService(Intent intent)方法,即可关闭/停止Service
    方法2:在Service内部,调用stopSelf()方法关闭自身


    Service的生命周期
    ---------------------------------
    onCreate():当Service组件被创建(第1次激活)时调用,反复激活同一个Service组件并不会重复调用该方法
    onStartCommand():当Service组件被激活时调用,每次激活都会调用该方法,在第1次激活时,该方法将在onCreate()之后执行
    onDestroy():当Service组件被销毁时调用


    Service的粘性
    ---------------------------------
    Service的粘性表现为:当Service被意外销毁时,会自动重新启动Service
    Service的粘性是通过onStartCommand()方法的返回值确定的,该返回值的取值可以有:
    a) START_STICKY:粘性的
    b) START_NOT_STICKY:非粘性的
    c) START_STICKY_COMPATIBILITY:兼容模式下的粘性的
    d) START_REDELIVER_INTENT:粘性的,且在自动重新启动Service时会携带原来激活Service的Intent对象

  • 相关阅读:
    c++再探string之eager-copy、COW和SSO方案
    C++之运算符重载
    numpy之随机数模块---random模块
    numpy之特征值、奇异值分解及其在图片处理中的应用
    numpy之傅里叶定理
    numpy之矩阵
    numpy之函数
    numpy之数据平滑处理
    numpy之多项式
    numpy之相关矩阵求解
  • 原文地址:https://www.cnblogs.com/fighting9527/p/5245292.html
Copyright © 2011-2022 走看看