在前面了解了什么是多线程和异步消息处理机制后,我们来看一下到底什么是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()在每次启动服务时都会调用

转载于:https://www.cnblogs.com/pinkstrawberry/p/8320681.html

Android四大组件之 --- Service入门相关推荐

  1. android java service_[Java教程]Android四大组件之Service浅见

    [Java教程]Android四大组件之Service浅见 0 2014-04-04 18:00:28 Service 是Android四大组件之一,可以在不显示界面的情况下在后台运行.还有一个作用是 ...

  2. 下面不是android四大组件之一的是,Android四大组件之一 Service

    Service是长期在后台运行的没界面的Android四大组件之一,默认是运行在主线程中的,如果在service中执行耗时操作超过20秒没响应的话就会造成ANR,所以可以使用IntentService ...

  3. Android 四大组件 之 Service

    子曰:温故而知新,可以为师矣. <论语>-- 孔子 一. 简介 Android 四大组件之一,特点是无需界面,用于在后台处理耗时的操作或长期任务.甚至在程序退出的情况下,我们也可以让 Se ...

  4. Android 四大组件之——Service(一)

    一.什么是服务 服务,是Android四大组件之一, 属于 计算型组件.   长期后台运行的没有界面的组件 ,特点是无用户界面.在后台运行.生命周期长 二,什么时候使用服务? 天气预报:后台的连接服务 ...

  5. Android四大组件(四) Service

    Service 服务 Service 服务 介绍 开启服务 停止服务 start方式开启服务的特点面试 bindService 方式开启服务的特点面试 可以使用Service开启特殊的广播接收者 bi ...

  6. 浅谈Android四大组件之Service

    一:Service简介 Android开发中,当需要创建在后台运行的程序的时候,就要使用到Service. 1:Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件.其他应用组件 ...

  7. android四大组件 服务,Android四大组件之Service

    Service Service(服务)是一个可以在后台执行长时间运行操作而不使用用户界面的应用组件.服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行. 此外,组件可以绑定到 ...

  8. Android四大组件之Service详解

    1. service是什么?及其生命周期? 在前台不可见,但是承担大部分数据处理工作(劳模),它和Activity的地位是并列的,区别在于:Activity运行与前台,Service运行于后台,没有图 ...

  9. android四大组件之Service 注册广播接收者

    广播的注册一共有两种,一种就是用清单文件注册,还有另外一种就是用代码注册,代码注册比较灵活,可以在需要的时候注册,不需要的时候解除注册 用服务注册广播首先要开启服务, 然后在服务oncreate方法里 ...

  10. [Android]Android四大组件之Service总结

    一.Service介绍 Service是Android中实现程序后台运行的解决方案,它非常适合用于去执行那些不需要和用户交互而且还要长期运行的task.Service的运行不需要依赖于任何用户界面,即 ...

最新文章

  1. 云计算行业报告:2018, 风起云涌
  2. MESSL(maven + extjs + spring portlet mvc + spring web flow + liferay )整合架构 5
  3. SpringBoot+Jquery+Jstree实现企业架构管理
  4. error while loading shared libraries: libopencv_highgui.so.3.2: cannot open shared object file 的解决办法
  5. oracle 01192,万分火急:ora-01503 ora-01192
  6. 万能无线键盘对码软件_Ceke M87蓝牙机械键盘拆解评测 - Mac小伴侣
  7. linux内存一直占满问题
  8. java 代码锁_Java 锁的知识总结及实例代码
  9. 敲7(升级版约瑟夫)
  10. 3D slicer的教程网站
  11. 重返设计模式--命令模式
  12. 什么是软件危机?它有哪些典型表现?为什么会出现软件为危机?
  13. ROS PGM格式文件详解 | 九七的ROS
  14. 行测-图形推理-5-一笔画类
  15. 普通话测试软件分数准确吗,普通话考试容易过吗?
  16. UMLChina建模竞赛第3赛季第6轮:随身老印医
  17. Qt应用程序缺少DLL
  18. 【启动盘制作】单/多系统启动盘制作
  19. 强大的W32Dasm反汇编工具使用教程
  20. RF连接Mysql数据库

热门文章

  1. SpringBoot整合easyexcel进行excel报表导入导出
  2. 互联网产品需求管理思考1——统一需求管理
  3. C++windows内核编程笔记day11 win32静态库和动态库的使用
  4. proxy_redirect参数的作用
  5. TFS Two Build Definations Share the Same Code Branch
  6. [WPF] TextBox Metro风格样式
  7. 忍者神龟java_忍者神龟-邪恶重生
  8. nginx根据URL地址、user_agent设备类型、文件扩展名 实现动静分离代理转发
  9. java基数排序_Java实现基数排序
  10. spython_spython