实验内容

  • 启动Service
  • 绑定Service
  • 与Service进行通信

实验要求

  • 启动Service
  • 绑定Service
  • 与Service进行通信

实验步骤

  • Service概述
    Service通常总是称之为“后台服务”,其中“后台”一词是相对于前台而言的,具体是指其本身的运行并不依赖于用户可视的UI界面,因此,从实际业务需求上来理解,Service的适用场景应该具备以下条件:
    1、并不依赖于用户可视的UI界面(当然,这一条其实也不是绝对的,如前台Service就是与Notification界面结合使用的);
    2、具有较长时间的运行特性。
  • service启动
    1、新建一个项目命名为Service_Test
    2、在MainActivity.java下新建一个类,命名为EchoService.java,并继承Service,如下

图1
3、打开AndroidManifest我们可以看到系统自动添加了一个Service的声明

图2
4、在activity_main.xml布局里面添加两个按钮,如下

图3
5、在MainActivity分别为其添加相应的监听函数

图4
6、在EchoService中添加打印信息提示Service是否开启

图5
7、编译运行如下

图6
8、我们点击启动服务按钮,并查看Logcat,可以看到

图7
可以看到EchoService已经运行,点我们点击返回键,销毁当前Activity时,可以看到并没有打印服务停止的信息,因此Service还处在后台运行状态。
9、当我们重新点击应用图标,再次打开时,点击停止服务按钮,可以看到Logcat的打印信息如下

图8
可以看到服务已经停止。

  • Service绑定
    1、首先在activity_main.xml再添加两个按钮

图9
2、然后在MainActivity分别添加相应代码

图10

图11
3、在EchoService中添加相应的输出

图12
4、编译运行如下

图13
当我们点击绑定服务时,如果当前的Service没有在运行,则先启动然后绑定,查看Logcat如下

图14
但是发现并没有打印我们在代码中写的输出信息

图15
因为下面代码的返回值是null

图16
5、下面通过一个内部类来实现,在EchoServ添加相应代码

图17
6、再次编译运行如下

图18
点击绑定服务按钮,查看Logcat如下

图19
需要注意的是:当我们需要解除绑定时需要先解除绑定然后再停止服务。
当我们启动并绑定了Service后,销毁当前Activity时,Service也被停止。

  • 与Service通信
    1、在Service内部生成一个操作,让它始终执行

图20

图21
2、添加一个按钮

图22
3、在MainActivity中添加相应代码

图23

图24
4、编译运行,可见如下效果

图25
点击绑定Service之后

图26
可以看到Service不停地打印信息,点击解除绑定后打印信息停止。再次点击绑定服务,然后点击获取当前i值按钮可以看到如下

图27

Android四大核心组件之Service的更多相关文章

  1. Android四大组件之Service

    Android四大组件之Service Android支持服务的概念,服务是在后台运行的组件,没有用户界面,Android服务可用有与活动独立的生命周期.Android支持两种类型的服务: 本地服务: ...

  2. 【Android开发日记】之入门篇(五)——Android四大组件之Service

    这几天忙着驾校考试,连电脑都碰不到了,今天总算告一段落了~~Service作为Android的服务组件,默默地在后台为整个程序服务,辅助应用与系统中的其他组件或系统服务进行沟通.它跟Activity的 ...

  3. [转]Android四大核心组件:Activity+Service+BroadcastReceiver+ContentProvider

    原文地址:http://c.biancheng.net/view/2918.html Android 作为一个移动设备的开发平台,其软件层次结构包含操作系统 (OS).中间件 (MiddleWare) ...

  4. Android 四大护法之一 Service

    1.Service的概念 Service是Android 四大组件之一,是默认没有界面的运行于后台的服务程序.Service的开启方式分为启动式服务(startService)和绑定式服务(bindS ...

  5. Android成长日记-Android四大组件之Service组件的学习

    1.什么是Service? Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它 ...

  6. Android 四大组件之service与Broadcast

    Android 四大组件之一:service: Service有五个生命周期:onCreat,onStartCommand, onBind,onUnbind, onDestroy 主要有绑定和非绑定两 ...

  7. Android四大组件之一Service介绍-android学习之旅(十二)

    基本概念: service是android四大组件之一,运行在后台执行耗时操作,并不提供用户界面.其他组件如acticity可以通过startService启动该组件,也可以通过bindService ...

  8. Android四大组件之一 -- Service详解

    相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了.Service作为Android四大组件之一,在每一个应用程序 ...

  9. Android四大组件:Service

    前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍对Service进行全面介绍(基础认识.生命周期.使用和应用场景) 目录 目录 1. 基础知识 定义:服务,属于Androi ...

随机推荐

  1. CozyRSS开发记录3-标题栏再加强

    CozyRSS开发记录3-标题栏再加强 1.更精炼的标题栏 接下来,我们把窗口的边框和默认的标题栏给去掉,让Cozy看起来更像一个平板应用. 在主窗口的属性里,修改下列两个属性: 效果一目了然: 2. ...

  2. 【淘淘】Quartz作业存储与管理

    一.Quartz作业管理和存储方式简介: 作业一旦被调度,调度器需要记住并且跟踪作业和它们的执行次数.如果你的作业是30分钟后或每30秒调用,这不是很有用.事实上,作业执行需要非常准确和即时调用在被调 ...

  3. tomcat配置详解/优化方案

    Service.xml Server.xml配置文件用于对整个容器进行相关的配置. <Server>元素:是整个配置文件的根元素.表示整个Catalina容器. 属性:className: ...

  4. nodejs review-01

    lesson lesson-code 05 Run your first web server 使用curl //指定方法;显示header信息 curl -X GET -i localhost:30 ...

  5. 关于MFi认证你所必须要知道的事情

    MFiLogo 前面我写了一篇文章<iOS App连接外设的几种方式>,其中EAP和NCM是都需要做MFi认证.对于苹果的MFI认证,对iOS开发的同学来说其实是一个比较陌生并且繁琐的to ...

  6. LightOJ1126 Building Twin Towers(DP)

    题目 Source http://www.lightoj.com/volume_showproblem.php?problem=1126 Description Professor Sofdor Al ...

  7. [转]netty对http协议解析原理

    本文主要介绍netty对http协议解析原理,着重讲解keep-alive,gzip,truncked等机制,详细描述了netty如何实现对http解析的高性能. 1 http协议 1.1 描述 标示 ...

  8. react-native 之布局篇

    一.宽度单位和像素密度 react的宽度不支持百分比,设置宽度时不需要带单位,那么默认的单位是什么呢? /** * Sample React Native App * https://github.c ...

  9. hdu 5122

    只要一个数的后面有比它小的数,这个数就要移,于是从后往前一趟遍历,记录一下这些数的个数就可以了. #include"iostream" #include"stdio.h& ...

  10. 2016huasacm暑假集训训练四 数论_A

    题目链接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/F 题意:狼捉兔子,兔子躲在n个洞中一个,这n个洞围成一个圈,狼会从第0号洞开始,搜 ...