300元3小时服务不限次数-400块钱3小时无限次快餐,500一晚同城约茶,风楼阁交友平台

千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:成都千锋IT培训  >  技术干货  >  安卓中线程和服务的区别?

安卓中线程和服务的区别?

来源:千锋教育
发布人:xqq
时间: 2023-10-14 04:29:51

一、安卓中线程和服务的区别

1.服务不是单一的进程

服务不是单一的进程。服务没有自己的进程,应用程序可以不同,服务运行在相同的进程中。

2. 服务不是线程,可以在线程中工作

服务不是线程??梢栽谙叱讨泄ぷ鳌?/p>

在应用中,如果是长时间的在后台运行,而且不需要交互的情况下,使用服务。

同样是在后台运行,不需要交互的情况下,如果只是完成某个任务,之后就不需要运行,而且可能是多个任务,需需要长时间运行的情况下使用线程。

如果任务占用CPU时间多,资源大的情况下,要使用线程。

Service其实就是一个没有界面的Activity,因此不能做长时间阻塞,ThreadService可以做阻塞,因为它是异步的。

Thread不能更新UI因为他自己本身已经脱离了UI线程,不存在Handler以及Message队列,但是Service系统会像Activity一样,将其绑定到UI线程上

延伸阅读:

二、Service的分类

对一个安卓服务(Android Service)来说,通常是要么将其作为已启动的服务(Started Service),要么将其作为已被绑定的服务(Bound Service)。

1、Started Service

已启动的服务(Started Service)是指被同一个应用程序的某个对象显式启动,或者在设备引导时就启动了(配置了服务的情况)。通常情况下,已启动的服务在操作系统或服务自身显式调用停止服务之前一直在运行。

2、Bound Service

被绑定的服务(Bound Service)提供直接链接到应用程序中特定的Service。它使用一个Binder提供对Service的引用,这样一来,应用程序就可以直接访问Service中的成员了。一般在同一个应用程序(通常是一个Activity)中的客户端启动时绑定到该Service,导致Android启动该服务,在客户端连接或绑定到它以后,安卓系统会保持被绑定的服务一直运行。当所有客户端断开连接或取消绑定时,Android才会停止该服务。

3、Hybrid Service

也可以将Started Service和Bound Service这两种服务混合在一起,称为混合式服务(Hybrid Service)。即:先显式启动某个服务,然后再绑定到该服务。这种方式的好处是也给别的应用程序提供了一个利用服务做其他事情的机会?;痪浠八担灰鸬挠τ贸绦蛄拥礁梅?,就可以直接访问它。

混合式服务的办法非常有用,使用也非常普遍。比如说,我们正在编写一个在徒步旅行时跟踪运动位置的应用程序,我们可能想要不断地记录位置以便以后使用,但仅在需要屏幕显示时才去显示特定的位置信息。在这种情况下,当应用程序运行时,仅仅在客户端某一个Activity在前台运行的时候才可能会启动这个服务。该Activity绑定到该服务以后,就可以获取位置信息,但是,即使该Activity取消和这个服务的绑定,该服务仍能继续运行。换言之,混合服务(Hybrid Service)一旦启动起来就会一直运行,直到它被显式停止和没有客户端绑定到它才会关闭它,或者直到系统因为内存不够用时才会关闭它。

以上就是关于安卓中线程和服务的区别的内容希望对大家有帮助。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

java的数据结构与C语言的数据结构有什么区别与联系?

2023-10-14

okr有什么用?

2023-10-14

51单片机和52单片机区别是什么?

2023-10-14

最新文章NEW

环形缓冲区为什么是lock-free的?

2023-10-14

oracle数据库库中两个表之间怎么同步数据?

2023-10-14

除了数据库与编译器Lex和Yacc还可以用来做什么?

2023-10-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>