android中的service、intentService有什么区别? [复制]

2024-02-02

有什么区别Service and an IntentService在安卓中?

有什么区别AsyncTask and an IntentService在安卓中?


1.Service和IntentService的区别

Service:它是 Android 服务的基类,您可以扩展它来创建任何服务。 由于该服务在 UI 线程内运行,因此需要您创建一个工作线程来执行其工作。

意向服务: 它是一个子类Service,这简化了您的工作。它已经在工作线程中工作,并且可以接收异步请求。因此,您无需手动创建它,也无需担心同步问题。您可以简单地扩展它并重写该方法:

onHandleIntent(Intent intent)

您可以在其中管理所有传入请求。

看看文档 http://developer.android.com/guide/components/services.html#ExtendingIntentService,您可以详细查看IntentService为你做:

  • 创建一个默认工作线程,执行传递给的所有意图onStartCommand()与应用程序的主线程分开。
  • 创建一个工作队列,一次将一个意图传递给您onHandleIntent()实现,所以你永远不必担心多线程。
  • 处理完所有启动请求后停止服务,因此您无需调用stopSelf().
  • 提供默认实现onBind()返回 null。
  • 提供默认实现onStartCommand()将意图发送到工作队列,然后发送到您的onHandleIntent()执行。

因此,如果您需要更多控制,可以使用Service类,但通常对于简单的服务,最好的解决方案是IntentService.

2.AsyncTask和Service的区别

它们是两个不同的概念。

Service:可以用作没有界面的活动。它适合长时间运行的操作。

异步任务:是一个特殊的类,它包装了工作线程(执行后台操作),促进与 UI 线程的交互,而无需直接管理线程或处理程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android中的service、intentService有什么区别? [复制] 的相关文章

  • 使用匕首柄作为依赖注入来处理多个改造客户端?

    我想在我的 android 应用程序中使用两个不同的后端 具有不同的响应格式 我使用 hilt 作为依赖注入 并对网络调用进行改造 这非常适合工作 因为我已经添加了第二个服务器网络文件和应用程序模块 所以它给了我错误 该错误列在最后 我需要
  • 您的应用中的 Google Analytics SDK

    我按照这里的说明进行操作 https developers google com analytics devguides collection android v3 https developers google com analytics
  • 即使我单击“运行”,Eclipse 也会运行调试模式

    Eclipse 总是在调试模式下启动我的应用程序 即使我单击常规的 运行 按钮 有任何想法吗 我发现我必须重新启动 Xoom 才能使其再次正常工作
  • 将用户重定向到 iTunes 应用商店或 Google Play 商店?

    我正在寻找一种简单的解决方案来发布我的应用程序的一个链接 例如在 Facebook 上 如果用户使用移动设备访问它 它应该自动重定向到正确的应用程序商店 否则 用户应该被重定向到我的网站 iOS应用程序 http itunes apple
  • 不使用eclipse安装Android模拟器

    如何在没有eclipse的电脑上安装android模拟器 android模拟器无需安装eclipse 只需下载 android sdk 并安装即可 安装android SDK之前必须先安装JDK 完成后安装成功 您将获得两个应用程序 SDK
  • 无法接收UsbManager.ACTION_USB_DEVICE_ATTACHED/UsbManager.ACTION_USB_DEVICE_DETACHED的广播Intent

    我最近正在编写一个 USB 主机应用程序 但它被卡住了 因为我无法检测到设备连接 分离事件 我遵循了编码说明http developer android com guide topics connectivity usb host html
  • Android 在 Windowmanager 中调整视图大小

    这是我的代码 menubuttonClosed li inflate R layout menu button null menubutton ImageButton menubuttonClosed findViewById R id m
  • MediaPlayer.create() 始终返回 null

    我以前用过媒体播放器 从来没有遇到过这个问题 每当我尝试使用 MediaPlayer create 时 该方法都会给我 null 并且我无法播放声音 我有什么遗漏的吗 public class Game extends Activity p
  • Android 游戏偶尔出现延迟

    我正在用 Java 制作一个简单的 Android 游戏 我注意到每 20 40 秒就会出现一些烦人的延迟 首先 我认为它们是由垃圾收集器引起的 但当我检查 LogCat 时 我发现游戏滞后时没有垃圾收集 每当游戏开始滞后时 我都会标记日志
  • 旋转 Google 地图中的两层标记图标

    在我的应用程序中 我向地图添加了一定数量的标记 如下所示 private fun addMarker googleMap GoogleMap location Location val options MarkerOptions optio
  • 检测设备方向

    我需要检测 Android 设备方向变化 而无需手动处理传感器数据 同时保持活动方向坚持某个方向 onConfigurationChange不会起作用 因为会让我的活动不旋转 通过使用传感器数据来检测方向变化 我认为这是轮子的发明 因为 A
  • 何时调用 glMatrixMode()

    我所关注的大多数 Android OpenGL ES 教程都有其 onSurfaceChanged 函数 如下所示 public void onSurfaceChanged GL10 gl int width int height gl g
  • 通过配置更改保留 CoroutineScope 的干净方法,无需 ViewModel

    我知道建议是在我们的 Activity 中使用 ViewModel 这样我们就可以使用它viewModelScope 由于 ViewModel 的寿命比 Activity 的寿命长 因此我们不必取消以下作业activity onDestro
  • 如何防止应用程序被盗(针对Android应用程序)?

    我想知道防止人们窃取我的应用程序的最有效方法是什么 在线下载 apk 的副本而不是购买它 我已经花了一个lot特别是 Droidbox 上的时间 并且不会发布 Sync 直到我可以保证提供专业版本的非法副本的人无法发布 有人实施过这个吗 我
  • 本地管理的广播接收器泄漏?

    当应用程序被系统杀死时 本地 即使用 LocalBroadcastManager 管理 BroadcastReceiver 是否有可能泄漏 我需要它的具体用例是我想在活动的 onCreate onDestroy 中注册 注销 Broadca
  • 如何获取Android中的所有主屏幕?

    我是安卓开发新手 我知道每个主屏幕都是启动器中的一个工作区 我想获取屏幕上所有应用程序图标的所有位置信息 那么有没有办法获取这些屏幕对象及其图标信息的列表 ADD 我更期待的是应用程序图标和屏幕之间的关系 例如 我想要某个应用程序图标的位置
  • onStart() 到底做了什么? - 安卓[重复]

    这个问题在这里已经有答案了 一段时间以来 我一直想知道 onStart 函数在 android 生命周期中的确切作用 网上的大多数资源只是说 它在您的活动在屏幕上可见之前被调用 但到目前为止我所做的应用程序我从未使用过onStart 我在
  • SimpleDateFormat 无法解析的日期 如果语言环境为 ES,则会出现错误。推特“创建时间”

    我正在尝试将 Twitter created at 转换为阿根廷日期时间 如果我这样做 final String TWITTER EEE MMM dd HH mm ss SimpleDateFormat sf new SimpleDateF
  • 活动中列表视图中的粘滞行

    我的列表视图中只有一行应该是粘性的 而不是粘性标题中带有字母的部分或部分 我真的很感激任何关于列表视图在活动中粘性一行而不是片段的帮助 我该怎么做 我真的很感谢任何帮助 提前致谢 使用如下代码 class MyAsyncTask exten
  • 在两个片段之间拖放视图

    我目前正在尝试在两个片段之间实现拖放 我已经将它们添加到我的活动中 如下所示 FragmentManager fm getFragmentManager FragmentTransaction ft fm beginTransaction

随机推荐

  • 在 Javascript 中处理多个图像后备

    有没有办法在纯 Javascript 或 React 中处理多个图像回退 我知道我们可以处理一张后备图像onError 如果我们想做另一个后备图像怎么办 提前致谢 每次设置导致错误的 src 时 都会调用图像的 onerror 回调 因此
  • 如何使用 Pipe 和 purrr 获取列表名称和切片名称

    我想知道在使用 purrr 的管道操作时如何获取列表名称或组名称作为标志 例如 我想使用传递给 ggsave 函数的每个列表名称的动态参数 require purrr require ggplot2 lst list a1 data fra
  • 在复杂的 React 组件中查找重复的键

    我有一个反应组件 它一次生成许多键 我不确定哪个不是唯一的 错误如下 有什么简单的方法可以帮助调试吗 谢谢 React js 19500 警告 数组或迭代器中的每个子项都应该有一个唯一的 key 属性 检查渲染方法MyGrid 请参阅 ht
  • Java支持关联数组吗? [复制]

    这个问题在这里已经有答案了 我想知道Java中的数组是否可以做这样的事情 int a new int 10 a index0 100 a index1 100 我知道我在其他语言中看到过类似的功能 但我不太熟悉任何细节 只是有一些方法可以将
  • 如何在窗口调整大小时更改高度 div?

    我的网站上有一个 div 应该是窗口的高度 这就是我得到的 document ready function var bodyheight document height sidebar height bodyheight 但是 当调整窗口大
  • 给定 AWS 访问/密钥对,如何检索其 IAM 权限?

    给定一个 AWS 访问密钥和一个 AWS 密钥的输入 我如何使用 AWS 开发工具包查找该账户可以执行哪些权限 我想为客户执行 XYZ 因此客户需要向我提供访问密钥和秘密密钥 以便以编程方式执行 XYZ 但是 在尝试执行任何这些操作之前 我
  • 模仿 msbuild 进程的程序集解析

    我正在编写一个验证工具 用于检查项目中引用的文件的版本 我想使用与 MSBuild 相同的解析过程 例如 Assembly Load 需要完全限定的程序集名称 然而 在项目文件中 我们可能只有 System Xml 之类的东西 MSBuil
  • 如何替换窗口中的文档?

    var newDoc document implementation createHTMLDocument someTitle swap newDoc with document DOMImplementation createHTMLDo
  • Java使用notepad++和nppexec编译运行

    请记住 在 Windows shell 中进行编译是有效的 因此此问题成为 PATH 问题的可能性很小 如果不是零 我花了很多时间研究如何做到这一点 我在网上找到的所有结果都表明你可以这样做 NPP SAVE javac FILE NAME
  • 使用 Elastic Beanstalk 部署 .NET 工作线程应用程序

    我正在使用 AWS 基础设施开发更广泛的 Web 应用程序 它有两个 工作 组件 从 SQS 读取工作并将结果写入 RDS 数据库 其中之一是 Python 我已经在单个 Elastic Beanstalk 实例上使用了它 第二个使用 NE
  • *** 检测到堆栈粉碎 ***:<未知> 终止中止(核心转储) 错误仅有时发生?

    我正在完成作业 因此我无法发布代码 并且很少出现此运行时错误 检测到堆栈粉碎 终止 中止 核心转储 当我再次运行可执行文件后 一切正常 是否有原因导致此错误仅有时出现 作为参考 我试图完成的作业要求我们将文件中的数据加载到两个向量中 并对数
  • AngularJS 和 Websocket

    我正在尝试学习 HTML5 Node js Express MongoDB AngularJS Websocket 的东西 这似乎让每个人现在都很兴奋 稍微适得其反的是 我实际上很难区分每种技术的实际用途 尤其是使用 ejs 作为模板引擎
  • 使用 if 条件更新 MySQL

    看来我有很大的问题条件查询 我必须做一个有条件更新 我在这里写下我想做的事情 IF SELECT tipo FROM abbonamento WHERE idU 17 punti THEN UDPATE abbonamento SET pu
  • 导出-导入 Android Studio AVD

    我一直在 Android Studio 中进行开发 并创建了许多适合我不同应用规范的 AVD 现在我计划在我的电脑上进行系统还原 有没有办法备份 AVD 然后在执行系统还原后将它们导入到新的 Android Studio 安装中 Thank
  • R 命令 dir.create 和 file.path

    我刚刚开始学习 r 并对课程中给出的以下问题感到困惑 使用 dir create 和 file path 在一个命令中在当前工作目录中创建一个名为 testdir2 的目录及其子目录 名为 testdir3 我无法让它接受我的答案 然后在网
  • jRails 替代方案

    你知道 jrails 的替代品吗 它或多或少已经过时了 使用 jQuery 1 5 现在 1 7 是当前版本 有人知道替代方案吗 Thanks EDIT 我知道如何单独使用jquery构建rails助手 但我喜欢rails助手 所以我不想单
  • 如何从文件描述符获取 FILE* 流?

    我们可以使用以下方法从 FILE 流中获取文件描述符fileno 功能 是否有一个函数可以从文件描述符获取 FILE 流而无需重新打开文件 FILE fdopen int fd const char mode See fdopen 3 但它
  • C# - 当应用程序使用另一种语言时,获取英语的异常消息?

    我正在尝试本地化我的程序 但我希望发送给开发人员的错误消息以英语显示 我一直无法找到一种方法来实现这一点 因为似乎如果在引发错误时将 UI 区域性设置为另一种语言 则会以该语言引发错误 由于这个程序不是我自己编写的 而且它很大 所以我认为在
  • 为什么我的网络浏览器在我点击链接时不发送 cookie,但在我输入 url 时却发送得很好

    我正在用 Golang HTML 创建一个 Web 应用程序 我正在实现注册 会话 电子邮件验证和登录 我的代码有效 但是我注意到一些奇怪的浏览器行为 当用户第一次注册时 我的应用程序将向他们发送一封电子邮件 其中包含一个链接 网址中带有唯
  • android中的service、intentService有什么区别? [复制]

    这个问题在这里已经有答案了 有什么区别Service and an IntentService在安卓中 有什么区别AsyncTask and an IntentService在安卓中 1 Service和IntentService的区别 S