• Android 开发中Service完全解析


     

     

    • 定义:服务,是Android四大组件之一,属于计算型组件

    • 作用:提供 需在后台长期运行的服务

    • 生命周期:

            

       Service的生命周期里,常用的有:

      (1) 4个手动调用的方法

    手动调用方法

    作用

    startService()

    启动服务

    stopService()

    关闭服务

    bindService()

    绑定服务

    unbindService()

    解绑服务

      (2) 5个自动调用的方法

    内部自动调用的方法

    作用

    onCreat()

    创建服务

    onStartCommand()

    开始服务

    onDestroy()

    销毁服务

    onBind()

    绑定服务

    onUnbind()

    解绑服务

    • 注意:必须声明在AndroidManifest.xml文件中。(Android四大组件均需要声明在此配置文件中)

    • 使用场景:

    (1)仅启动一个后台服务,长期进行某项任务,使用startService;

    (2)仅想与后台服务进行通信,使用bindService;

    (3)如果一个Service又被启动又被绑定,则该Service会一直在后台运行,既使用startService,又使用bindService。

    首先不管如何调用,onCreate始终只会调用一次。对应startService调用多少次,Service的onStartCommand方法便会调用多少次。Service的终止,需要unbindService和stopService同时调用才行。

    不管startService与bindService的调用顺序,如果先调用unbindService,此时服务不会自动终止,再调用stopService之后,服务才会终止;如果先调用stopService,此时服务也不会终止,

    而再调用unbindService或者之前调用bindService的Context不存在了(如Activity被finish的时候)之后,服务才会自动停止。

    • 对比

    (1) Service 与 Thread的区别

     

    注:一般会将 Service 和 Thread联合使用,即在Service中再创建一个子线程(工作线程)去处理耗时操作逻辑

    (2) Service和IntentService的区别

     

    •  实例

  • 相关阅读:
    NSURLSession 网络请求
    NSData 数据
    NSStream文件流
    NSFileManager文件管理
    NSCache 缓存
    NSUserDefaults数据存储
    NSKeyedArchiver数据归档
    子线程定时器的创建
    NSEnumerator迭代器
    NSDate 时间
  • 原文地址:https://www.cnblogs.com/xuanwei-qingfeng/p/8931024.html
Copyright © 2020-2023  润新知