美文网首页
Service相关知识

Service相关知识

作者: plus彭于晏 | 来源:发表于2018-09-09 15:08 被阅读0次

先从生命周期说起吧:

首先他有三个生命周期,分别是:onCreate(),onStartCommand(),onDestroy()。

首先(第一次)当服务被启动了调用,会调用onCreate(),onStartCommand(),第二次或者以后再启动这个服务的时候,只会调用onStartCommand(),因为onCreate()只会在还未创建的时候,会调用,而onDestroy(),顾名思义,服务被销毁的时候会被调用。

我们再来看看服务的启动方式:

    有两种,分别是:startService();bindService();

我们看到这里,是不是会想,这两种启动方式有什么区别吗?

        答:按我理解的话,我是这样想的,startService()只是启动了服务,可以在后台运行了,但是我们想对这个服务做什么的时候,我们是没办法的,所以我们如果想让服务跟Activity进行通信,就必须通过bindService(),进行绑定,通过onBind()返回的IBinder对象进行通信,

这里我们首先创建了一个ServiceConnection的匿名类,在里面重写了onServiceConnected()方法和onServiceDisconnected()方法,这两个方法分别会在Activity与Service建立关联和解除关联的时候调用。在onServiceConnected()方法中,我们又通过向下转型得到了MyBinder的实例,有了这个实例,Activity和Service之间的关系就变得非常紧密了。现在我们可以在Activity中根据具体的场景来调用MyBinder中的任何public方法,即实现了Activity指挥Service干什么Service就去干什么的功能。

其实销毁服务也是需要一门学问的

    我们都知道启动服务可以startService(),销毁服务就直接调用stopService(),还有bindService()启动服务,UnbindService()解绑销毁服务,很简单没错是这样,但是你有没有试过先调用startService(),然后再调用bindService(),这个时候你会发现你单独点击stopService()或者UnbindService(),服务是不会被销毁的,那要怎样才会被销毁呢?其实要两个都要点击才行,StopService()只是停止服务,Unbindservice()会让Service和Activity解除关联,一个Service必须要在既没有和任何Activity关联又处理停止状态的时候才会被销毁。

你可以参照一下郭神的这篇文章:Android Service完全解析,关于服务你所需知道的一切(上)

相关文章

  • Android Service用法知识点的讲解

    Android Service 学习Service相关知识点: android service 的基础知识,生命周...

  • Service相关知识

    先从生命周期说起吧: 首先他有三个生命周期,分别是:onCreate(),onStartCommand(),onD...

  • Service相关知识

    一. 简介 Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。Service可由其他应...

  • Service相关知识

    1、Service简单概述 2、Service在清单文件中的声明 3、Service生命周期 4、Service启...

  • 关于Android的Service知识点,你知道吗?

    目录 学习Service相关知识点: 概述; Service生命周期; Service的基本用法; 服务。 问:达...

  • Android 之 Service 相关知识

    转载请注明出处:http://www.jianshu.com/p/3f99e44f842f本文出自 LeoYan ...

  • service相关知识点

    总结下相关的知识点吧,证明下自己还活着。 来张总结图: 生命周期 service生命周期的经历三个过程:创建->开...

  • Service知识点相关

    Service的启动方式 1,startService 生命周期:startService->onCreate()...

  • Android四大组件之Service

    Service的相关知识虽然简单,但是也比较琐碎,其衍生知识也比较多。本篇从Service的生命周期、运行和使用方...

  • Android面试题整理(二)

    Android面试题整理(二) 1.Service的相关知识 Service默认并不会运行在子线程中,它也不会运行...

网友评论

      本文标题:Service相关知识

      本文链接:https://www.haomeiwen.com/subject/tsylgftx.html