我正在寻找Android应用程序中应该使用的服务.
文件说
服务是一种应用程序组件,可以在后台执行长时间运行的操作,但不提供用户界面.
我已经读过这个线程应用程序线程vs服务线程,说相同的服务是在后台运行操作.
但是这里也可以使用Thread.它们之间的任何差异以及您应该使用它们的位置
use*_*104 28
根据最新文档更新:
Android在其文档中包含了何时应该使用Service vs Thread.这是它说的:
如果您需要在主线程之外执行工作,但只有在用户与您的应用程序交互时,您应该创建一个新线程而不是服务.例如,如果您想播放一些音乐,但只有在您的活动正在运行时,您可以在onCreate()中创建一个线程,在onStart()中开始运行它,然后在onStop()中停止它.还要考虑使用AsyncTask或HandlerThread,而不是传统的Thread类.有关线程的更多信息,请参阅进程和线程文档.
请记住,如果您确实使用了服务,它默认仍然在应用程序的主线程中运行,因此如果它执行密集或阻塞操作,您仍应在服务中创建新线程.
这两种方法之间的另一个显着区别是,如果您的设备休眠,线程将会休眠.然而,即使设备进入睡眠状态,服务也可以执行操作.我们以两种方法播放音乐为例.
线程方法:只有在您的应用处于活动状态或屏幕显示开启时才会播放音乐.
服务方法:即使您最小化应用程序或屏幕关闭,音乐仍然可以播放.
注意:启动API级别23,您应该使用Doze测试您的应用程序.
N S*_*rma 22
服务旨在独立运行您的任务Activity,它允许您在后台运行任何任务.这在主UI线程上运行,因此当您想要执行任何网络或重负载操作时,您必须使用Thread那里.
示例:假设您希望每天在后台备份您的即时消息,然后在这里使用Service.
Threads用于在自己的线程而不是主UI线程中运行您的任务.当你想要做一些繁重的网络操作时,你会使用它,比如连续地向服务器发送字节,并且它与Android组件相关联.当你的组件破坏谁开始这个,那么你也应该停止它.
示例:Thread出于某种目的,您在Activity 中使用它,最好在活动销毁时将其停止.
这是我主要遵循的原则
在以下情况下使用线程
在以下情况下使用服务
| 归档时间: |
|
| 查看次数: |
22898 次 |
| 最近记录: |