zoukankan      html  css  js  c++  java
  • android service

    概念:android service 服务, 是andorid 四大组件之一

    作用:用于处理后台任务

    运行特性:它本身是跑在主线程中的的,所以如果在service 中处理耗时操作,应该启动子线程或者子任务来执行

    使用:

    1. 启动方式: startService bindService

    • startService 这种方式启动的service 和调用者之间没有直接的关联关系,就是说启动后即使调用者销毁了, 后台会一直跑着这个service, 除非调用stopService方法
    • bindService 这种方式启动的service是和调用者紧密联系在一起的,这种启动的service会随着调用者的销毁而销毁,也可以调用unbindservice主动销毁

    2. 生命周期:

    3. service 重要的理解点

    • 第一次点击:不管是startService还是bindService,如果service还未存在,那么会调用 
      onCreate,之后如果是startService那么调用onStartCommand(),如果是 
      bindService那么会调用onBind() 
      之后,如果再调startService(),那么会调用onStartCommand();如果再调用 
      bindService那么如果第一次点击是bindService,那么就不会调用onBind(),否则 
      什么方法都不会被调用。

      当bindService后,不能stopService,需要通过unBindService()来解除绑定。

      只是startService()后,不可以通过unBindService()来销毁service

    • 通过bindService()函数绑定Servcie时, onCreate()函数和onBinde()函 
      数将先后被调用 
      通过unbindService()函数取消绑定Servcie时,onUnbind()函数将被调用, 
      如果onUnbind()函数的返回true,则表示在调用者绑定新服务时, 
      onRebind()函数将被调用

      取消绑定仅需要使用unbindService()方法,并将ServiceConnnection 
      传递给unbindService()方法 
      需注意的是,unbindService()方法成功后,系统并不会调用 
      onServiceDisconnected(),因为onServiceDisconnected()仅在意外断开 
      绑定时才被调用

    • startService()的目的是回调onStart()方法,onCreate() 方法是在Service 
      不存在的时候调用的,如果Service存在(例如之前调用了bindService,那 
      么Service的onCreate方法已经调用了)那么startService()将跳过onCreate 
      () 方法。 
      bindService()目的是回调onBind()方法,它的作用是在Service和调用者之 
      间建立一个桥梁,并不负责更多的工作(例如一个Service需要连接服务器 
      的操作),一般使用bindService来绑定到一个现有的Service(即通过 
      StartService启动的服务)。

       
    • 多次调用startService和bindService ,最终都是同一个对象
       
  • 相关阅读:
    虚函数和纯虚函数
    MS CRM 2011中PartyList类型字段的实例化
    MS CRM 2011的自定义与开发(12)——表单脚本扩展开发(4)
    MS CRM 2011的自定义与开发(12)——表单脚本扩展开发(2)
    MS CRM 2011的自定义和开发(10)——CRM web服务介绍(第二部分)——IOrganizationService(二)
    MS CRM 2011 SDK 5.08已经发布
    MS CRM 2011 Q2的一些更新
    最近很忙
    Microsoft Dynamics CRM 2011最近的一些更新
    补一篇,Update Rollup 12 终于发布了
  • 原文地址:https://www.cnblogs.com/wangzehuaw/p/wangzh.html
Copyright © 2011-2022 走看看