• service


    Service总结

    长期在后台运行的, 没有界面的组件, 用来在后台执行一些耗时的操作

    Service是一种在后台长期运行的,没有界面的组件,由其他组件调用开始运行;

    服务不太会被kill,即使在内存不足时被kill,当内存恢复时,服务会自动复活,例如下载就可以放入服务中来做,下载时,启动服务,完成时,关闭服务;

    1、创建与使用Service

    1)、定义类继承Service, 清单文件中声明<service>,同样也可以配置意图过滤;

    2)、使用Intent来开启Service,在其他组件中调用startService方法;

    3)、停止Service,调用stopService方法;

     

    2、生命周期

    Service中的生命周期方法(Context调用执行):

    1)startService()             如果没创建就先onCreate()再startCommand(), 如果已创建就只执行startCommand();

    2)stopService()              执行onDestroy()

    3)bindService()              如果没有创建就先onCreate()再onBind()

    4)unbindService()          如果服务是在绑定时启动的, 先执行onUnbind()再执行onDestroy(). 如果服务在绑定前已启动, 那么只执行onUnbind();

    3、开启服务的2种方式

    2种不同开启方式的区别:

    1)startService:

           开启服务,服务一旦开启,就长期就后台运行,即使调用者退出来,服务还会长期运行;

           资源不足时,被杀死,资源足够时,又会复活;

    2)bindService:

           绑定服务,绑定服务的生命周期会跟调用者关联起来,调用者退出,服务也会跟着销毁;

           通过绑定服务,可以间接的调用服务里面的方法(onBind返回IBinder);

     

    4、服务混合调用生命周期

    一般的调用顺序:

    ①、start  -> stop                    开启 –> 结束

    ②、bind  -> unbind                 绑定(服务开启) -> 解绑(服务结束)

    混合调用:

    ①、start –> bind -> stop->unbind->ondestroy                通常不会使用这种模式

           开启 –> 绑定 –> 结束(服务停不了)->解除绑定(服务才可停掉)

    ②、start –> bind -> unbind -> stop                          经常使用

           开启 –> 绑定 –> 解绑(服务继续运行)-> stop(不用时,再停止服务)

             这样保证了服务长期后台运行,又可以调用服务中的方法

  • 相关阅读:
    Vue2.0 【第二季】第2节 Vue.extend构造器的延伸
    Vue2.0 【第二季】第1节 Vue.directive自定义指令
    Vue2.0 【第一季】第8节 v-pre & v-cloak & v-once
    Vue2.0 【第一季】第7节 v-bind指令
    c# tcp协议
    easyui笔记
    asp.net get中文传值乱码
    asp.net 调试,Web 服务器被配置为不列出此目录的内容。
    金蝶API 官方demo报错,解决方案
    hbuilder拍照上传,与asp.net服务器获取并保存
  • 原文地址:https://www.cnblogs.com/dubo-/p/6676082.html
Copyright © 2020-2023  润新知