Android四大核心组件之Service
实验内容
- 启动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的更多相关文章
- Android四大组件之Service
Android四大组件之Service Android支持服务的概念,服务是在后台运行的组件,没有用户界面,Android服务可用有与活动独立的生命周期.Android支持两种类型的服务: 本地服务: ...
- 【Android开发日记】之入门篇(五)——Android四大组件之Service
这几天忙着驾校考试,连电脑都碰不到了,今天总算告一段落了~~Service作为Android的服务组件,默默地在后台为整个程序服务,辅助应用与系统中的其他组件或系统服务进行沟通.它跟Activity的 ...
- [转]Android四大核心组件:Activity+Service+BroadcastReceiver+ContentProvider
原文地址:http://c.biancheng.net/view/2918.html Android 作为一个移动设备的开发平台,其软件层次结构包含操作系统 (OS).中间件 (MiddleWare) ...
- Android 四大护法之一 Service
1.Service的概念 Service是Android 四大组件之一,是默认没有界面的运行于后台的服务程序.Service的开启方式分为启动式服务(startService)和绑定式服务(bindS ...
- Android成长日记-Android四大组件之Service组件的学习
1.什么是Service? Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它 ...
- Android 四大组件之service与Broadcast
Android 四大组件之一:service: Service有五个生命周期:onCreat,onStartCommand, onBind,onUnbind, onDestroy 主要有绑定和非绑定两 ...
- Android四大组件之一Service介绍-android学习之旅(十二)
基本概念: service是android四大组件之一,运行在后台执行耗时操作,并不提供用户界面.其他组件如acticity可以通过startService启动该组件,也可以通过bindService ...
- Android四大组件之一 -- Service详解
相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了.Service作为Android四大组件之一,在每一个应用程序 ...
- Android四大组件:Service
前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍对Service进行全面介绍(基础认识.生命周期.使用和应用场景) 目录 目录 1. 基础知识 定义:服务,属于Androi ...
随机推荐
- freemarker内置函数和用法
原文链接:http://www.iteye.com/topic/908500 在我们应用Freemarker 过程中,经常会操作例如字符串,数字,集合等,却不清楚Freemrker 有没有类似于Jav ...
- Android实战技巧之十二:Android Studio导入第三方类库、jar包和so库
第三方类库源码 将一网友的XMPP代码从ADT转到AS时,发现其使用了第三方类库,源码放在了lib下,直接在AS中Import project,第三方类库并没有自动导入进来,看来需要自己动手了. 项目 ...
- 桶装水 送水 消费充值PDA会员管理系统 介绍
桶装水 送水 消费充值PDA会员管理系统 介绍 主要功能:会员管理临时开卡.新增会员.修改会员.删除会员场馆管理仓管信息管理.租凭信息管理会员卡管理会员卡类型设置.会员发卡.会员信息管理.体验用户发卡 ...
- HBase change split policy on an existing table
hbase(main)::> create 'test_table_region', 'username' row(s) in 1.2150 seconds hbase(main)::> ...
- React使用jquery方式动态获取数据
好久没写react了,今天有空写一下来react实现实时请求数据,并刷新数据的小demo. 首先我还是选择了jquery方式中自带的ajax获取数据,首先要引用所需的js包 接下来要写一个自定义的js ...
- 基础DOS命令
DOS命令: 1. 切换盘符:d: 2. 查看文件目录清单: dir dir/s 查看所有目录及子目录下的所有内容 dir/p 分屏显示 dir/s/p 分屏显示所有内容 提前结束:ctr ...
- 【Alpha】Daily Scrum Meeting第四次
之前没领悟到Daily Scrum Meeting的精髓,认为要做出些东西才敢拿出来. 在范老师提醒我们保持有节奏的迭代后,我们意识到之前的想法是不符合Daily Scrum Meeting的思想的. ...
- javascript学习之时间组件
写了一个时间组件,哪里需要哪里调(菜鸟级别,大牛路过就Ok了): 先有一个HTML文件: <!doctype> <html> <head> <title> ...
- 重学ps_1
1,选取 打开图片->点击选取工具->ctrl+c->ctrl+n->ctrl+v 2,去除图片背景 打开你要去除背景的图片->在图层面板中->双击图层把图层改为0 ...
- 【手把手教你Maven】构建过程
Maven是一款进行 依赖管理.项目构建.信息管理 为一体的工具. 它不像Make具有复杂的命令.也不像Ant需要手动编写大量的重复代码就能进行项目的构建: 还能提供强大的依赖库管理,避免jar包混乱 ...