Android基础——四大组件Service

Service

1.Xmind

Service


2.创建服务

  1. 流程

    • 使用startService启动Service

      protected void onCreate(Bundle savedInstanceState){
          super.onCreate(saveInstanceState);
          Intent service = new Intent();
          service.setClass(this, MyService.class);
          startService(service);
      }
    • 使用bindService绑定Service

      protected void onCreate(Bundle savedInstanceState){
          super.onCreate(saveInstanceState);
          Intent service = new Intent();
          service.setClass(this, MyService.class);
          bindService(intent, new MyConnection(), BIND_AUTO_CREATE);
      }

      MyConnection为实现了ServiceConnection接口的类,内部覆写了onServiceConnected方法,当Service被绑定的时候回调该函数。

    • 以上两步均需要在清单文件中注册

      <service android:name = "service.test.MyService"/>

3.关于进程

服务使用的是进程而不是线程

假设服务为线程,一个应用程序启动了,该应用程序的进程也启动了,而服务线程也运行在该进程中,但当当前应用关闭时,进程被置为空进程,而内存正好不够用,此时的服务也将随着这个空进程被回收。所以服务需要单独开放一个进程进行运行,保证其生命周期。


4.生命周期

  1. 生命周期图
    Service lifetime


  2. 整体生命周期
    service在onCreate时被调用开启,到onDestroy时被摧毁,这和Activity类似,一个进行初始化,一个释放资源。


  3. active lifetime

    • 在onStartCommand或是onBind被调用时,service进入积极活动的生命时间(active lifetime)
    • 两种不同的生命周期路径也将各自处理由startService或是bindService方法传过来的Intent对象。
    • 如果service是被开启的,那么它的活动生命周期和整个生命周期一起结束。
    • 如果service是被绑定的,他们的活动生命周期是在onUnbind方法结束后结束。

  4. 一个被开启的service是通过调用stopSelf或是stopService来停止的,除非这个service和客户组件绑定,否则系统将会直接销毁他。

四大组件部分做个简单介绍吧,不多写了。
未完待续。。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值