美文网首页
service服务与线程关系

service服务与线程关系

作者: 苏苏苏苏考拉 | 来源:发表于2018-04-11 15:49 被阅读14次

应用程序主线程并不总是UI线程,当活动停止时,activity的onStop被执行,因此UI线程被从该活动中移走并移动到相同或不同应用程序中的另一个活动。然而,这并不意味着应用程序不再处于活动状态,它可以继续在后台工作,直到它被操作系统或用户关闭。那么谁让它在后台运行?它是主线程而不是UI线程。

在Android中,服务是一个应用程序组件,可以在UI线程的后台执行长时间运行的操作。通过背景,这意味着它没有用户界面。服务默认在调用Component进程的主线程上运行(因此可能会降低响应速度并导致ANR),因此您应该创建一个新线程来执行长时间运行的操作。服务也可以在完全不同的过程中运行。 Unlike Activity components, Services do not have any graphical interfaces. Also Broadcast Receivers are for receiving broadcast messages (broadcast, multicast, unicast) and perform short tasks whereas Services are meant to do lengthy processing like streaming music, network transactions, file I/O, interact with databases, etc. When a Service is started by an application component like an Activity it runs in the background and keeps running even if the user switches to another application or the starting component is itself destroyed

 IntentService

很多时候,启动一个Service就是要它完成一个复杂而耗时的任务,完成之后,这个Service就可以退出了。

例如文件下载。Activity界面启动负责下载的Service,Service安静的下载,下载完成了,就可以自己退出。下载的过程中,Activity可以继续显示下载的进度,也可以不用关心当前的状态而完全退出。

Android SDK为开发者准备好了这样一个现成的Service-IntentService。

IntentService是Service的子类,就是为了上面的那种使用场景而设计的。Android SDK对Service类进行了进一步的封装和扩展,方便开发者直接使用,而不需要重新造轮子了。

使用IntentService,

继承IntentService,实现它的onHandlerIntent()函数。onHandlerIntent()是在工作线程中被调用的,所以可以在它当中添加耗时的任务处理,

网上一个回答很有趣

相关文章

  • service服务与线程关系

    应用程序主线程并不总是UI线程,当活动停止时,activity的onStop被执行,因此UI线程被从该活动中移走并...

  • Service详解_其他知识

    本篇内容主要讲解其他关于Service内容: 前台服务以及通知发送 服务Service与线程Thread的区别 A...

  • Android 的 Service

    线程和服务的区别: 1.service默认运行在主线程中,执行耗时操作时,在线程中开启2.service优先级高于...

  • Service设置startForeground不被杀死

    首先Service是运行于后台进程的,这个跟运行的线程没有关系,Service是运行于UI主线程的。 先看看进程的...

  • 关于service的生命周期

    * 用start的方式启动服务 service在主线程执行 * onCreate -> onStartComman...

  • Android 学习之Service

    什么是Service? Service,俗名服务。在Android系统中,Service与Activity就...

  • Binder线程池

    在服务端Service中,有三个Binder类,那么服务端也就开了3个线程(Binder服务端必须在子线程中监听客...

  • k8s-Service

    Service 存在的意义 Pod与Service的关系 Service定义与创建 Service三种常用类型 C...

  • Android - Service Start/Stop 使用

    Service Start/Stop 使用 用启动/停止方式来使用服务,启动者与服务没有直接关系,启动者的生命周期...

  • Service(三) - Service和Thread关系

    1. Service和Thread关系 Thread:用于开启子线程,在里边执行耗时操作,不会阻塞主线程;S...

网友评论

      本文标题:service服务与线程关系

      本文链接:https://www.haomeiwen.com/subject/ornahftx.html