Android四大组件之 --- Service入门
在前面了解了什么是多线程和异步消息处理机制后,我们来看一下到底什么是Service。
1. 什么是service(service的作用)
一个服务是一个具有较长生命周期但没有用户界面的程序,例如:一个正在从播放列表中播放歌曲的媒体播放器在后台运行
service用于在后台完成用户指定的操作,一般不需要与用户交互
2. 分类
service分为两种:
started(启动):当应用程序组件(如activity)调用startService方法启动服务时,服务处于started状态
bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态
3. 注意,service也是需要在配置文件中(比如AndroidManifest.xml)注册的,例如
<service
android:name=".MyService"
android:enabled="true"
android:exported="true"></service>
4.定义一个service(如何在项目中定义一个服务)
新建一个ServiceTest项目,然后右击com.example.servicetest→New→Service→Service,在弹出的创建服务
窗口中,Exported属性表示是否允许除了当前程序之外的其他程序访问该服务,enabled属性表示是否启用这个服务。
MyService.java中的代码:
public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("Not yet implemented");
}
}
MyService继承自Service类,所以也是一个服务。onBind()方法是Service中唯一一个抽象方法,所以必须在子类
里实现。
重写Service中的一些其他方法
public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("Not yet implemented");
}
//onCreate(), onStartCommand(),onDestory()是服务中最常用的3个方法
//onCreate()会在服务创建时调用
@Override
public void onCreate() {
super.onCreate();
}
//onStartCommand()在每次服务启动时调用,如果我们希望服务一旦启动就执行某个action,就可以将逻辑写在
//onStartCommand()方法里面
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
//onDestory()在服务销毁时调用,在服务销毁时,我们要在onDestory()中回收那些不再使用的资源
@Override
public void onDestroy() {
super.onDestroy();
}
}
onCreate()和onStartCommand()的区别:
onCreate()在服务第一次创建时调用
onStartCommand()在每次启动服务时都会调用
Android四大组件之 --- Service入门的更多相关文章
- 【Android开发日记】之入门篇(五)——Android四大组件之Service
这几天忙着驾校考试,连电脑都碰不到了,今天总算告一段落了~~Service作为Android的服务组件,默默地在后台为整个程序服务,辅助应用与系统中的其他组件或系统服务进行沟通.它跟Activity的 ...
- Android四大组件之Service
Android四大组件之Service Android支持服务的概念,服务是在后台运行的组件,没有用户界面,Android服务可用有与活动独立的生命周期.Android支持两种类型的服务: 本地服务: ...
- 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 ...
- Android四大组件之Service浅见
Service 是Android四大组件之一,可以在不显示界面的情况下在后台运行.还有一个作用是通过AIDL来实现进程间通信. Service的启动方式 Service的启动方式有两种,startSe ...
- Android 四大组件之Service
---恢复内容开始--- 1,Service的生命周期
随机推荐
- MySQL 之 索引原理与慢查询优化
当考虑到数据多的时候,并且要加速查询时候,就不得不 用到索引了. 索引本质:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件, 也就是说,有了这种索引机制,我们可 ...
- 动态 DP 学习笔记
不得不承认,去年提高组 D2T3 对动态 DP 起到了良好的普及效果. 动态 DP 主要用于解决一类问题.这类问题一般原本都是较为简单的树上 DP 问题,但是被套上了丧心病狂的修改点权的操作.举个例子 ...
- C语言--第3次作业
1.本章学习总结 1.1思维导图 1.2 本章学习体会及代码量学习体会 1.2.1学习体会 我眼中的函数 这一章接触到了新的知识--函数,不同于之前所学的编程,函数具有很清楚的分工性,且可以用来多次调 ...
- put与putIfAbsent区别
put与putIfAbsent区别: put在放入数据时,如果放入数据的key已经存在与Map中,最后放入的数据会覆盖之前存在的数据, 而putIfAbsent在放入数据时,如果存在重复的key,那么 ...
- 关于Struts2的通配方法、转发重定向
1.通配符 在配置struts.xml文件的时候,需要很多action,这时可以用到通配符找到与之对应的方法和类,当然实际开发中很少用到这种方法 struts.xml: <!--通配方法 *_* ...
- Jmeter 获取系统时间,和对系统时间进行增减时间
今天做了一个测试,比如发送短信验证码之后的, 验证90s被验证码有效的问题 那如何测试开发的代码,判断了90s内有效呢1. 验证码获取时间距离现在89秒,验证通过2. 验证码获取时间距离现在90秒,验 ...
- 解决IE11安装时需要“获取更新”(IE11离线安装)
方法一:说明:目前是针对Windows7 64位操作系统安装! 1. 在C盘下新建文件夹,取名为“IE11”. 2. 将官网下载的IE11离线包放到此文件夹中. 3. win + r 打开运行窗口,输 ...
- loadrunner场景之集合点设置技巧
在loadrunner的虚拟用户中,术语concurrent(并发)和simultaneous(同时)存在一些区别,concurrent 是指虚拟场景中参于运行的虚拟用户. 而simultaneous ...
- activiti-用户与用户组
https://my.oschina.net/acitiviti/blog/283892 activiti学习笔记3-用户与用户组 收藏 安世博 发表于 3年前 阅读 5507 收藏 10 点赞 0 ...
- docker 安装elasticSearch7.0.0
一.执行命令:docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-n ...