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 MediaPlayer

    我正在尝试向我的 Android 应用程序添加一个按钮 当点击该按钮时它会播放 MP3 我已经让它工作了 但没有办法释放 mediaPlayer 对象 因此即使在我离开活动后它仍然会继续播放 如果我在react 方法之外初始化MediaPl
  • 如何在 Linux 内核中定义并触发我自己的新软中断?

    我想在 Linux 内核中创建自己的软中断 这是正确的方法吗 In the init我想触发该模块的softirq我将添加一个调用 394 void open softirq int nr void action struct softir
  • 通过 WhatsApp 发送消息

    由于我发现了一些较旧的帖子 表明 Whatsapp 不支持此功能 我想知道是否发生了变化 以及是否有办法打开与我通过意图发送的号码进行 Whatsapp 聊天 UPDATE请参阅https faq whatsapp com en andro
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • 图像作为电子邮件附件

    我想构建一个应用程序 我可以在电子邮件中附加图像 打开图像并将其设置为我的壁纸 我想让它跨平台 所以你能告诉我是否可以使用phonegap 或者我是否必须为iphone和android构建一个本机应用程序 您好 如果您只想通过电子邮件附加图
  • 从 BroadcastReceiver 类调用活动方法

    我知道我可以做一个内部接收器类来调用接收器中的任何方法 但我的主要活动太大了 要做的事情也很多 因此 我需要一个扩展广播接收器的类 但它不是内部类 并且可以从我的主要活动中调用一种方法 我不知道是否可能 但我的活动是家庭活动和 single
  • Android 构建发布失败,原因为:java.lang.ArrayIndexOutOfBoundsException:213(pr​​oguard 问题)

    我的项目使用调试构建变体构建得很好 但使用发布变体 Android Studio 会抛出 引起原因 java lang ArrayIndexOutOfBoundsException 213 可能是什么问题 如果我设置minifyEnable
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • WorkManager 或 AlarmManager 用于日常请求然后通知工作?

    这是用例 用户设置具有特定时间的每日通知 在指定时间 发出网络请求以获取一些数据 然后使用检索到的数据显示通知 我不确定是否应该使用 AlarmManager 还是 WorkManager 来实现这个用例 据我了解 AlarmManager
  • OnLongClickListener 不工作

    我有一个ImageView 我需要使用onLongClickListener对于图像视图 当我使用这段代码时 什么也没有发生 Code gallery Gallery findViewById R id gall1 gallery setA
  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案
  • 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒

    由于更新至 Android 5 0 MediaPlayer 在 Samsung Galaxy S5 上无法正常工作 启动音频流后加载时间超过 10 秒 示例代码 MediaPlayer mPlayer new MediaPlayer Str
  • Android - 以编程方式选择菜单选项

    有没有办法以编程方式选择菜单选项 基本上 我希望视图中的按钮能够执行与按特定菜单选项相同的操作 我正在考虑尝试调用 onOptionsItemSelected MenuItem item 但我不知道要为菜单项添加什么 是的 有一种方法可以选
  • 通过系统应用程序以编程方式静默安装 apk(无需 root)

    我有带有 android sharedUserId android uid system UID 1000 的系统级应用程序 设备未root INSTALL PACKAGES 权限包含在清单中 我可以静默安装下载的 apk 吗 我已经发现这
  • 在 Android 应用程序资源中使用 JSON 文件

    假设我的应用程序的原始资源文件夹中有一个包含 JSON 内容的文件 我如何将其读入应用程序 以便我可以解析 JSON See 开放原始资源 http developer android com reference android conte
  • 如何使用 AccessibilityService 在 Android 中模拟按键

    我正在编写一个辅助服务 我一直在尝试在应用程序上进行一些自动搜索 我使用accessibilityservice action paste来填充EditText 然后我需要模拟软键盘上的按键 但我不知道如何做 你们能帮我一下吗 你可以尝试A
  • 我的应用程序中的后退按钮出现问题[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在手机关闭时清除共享首选项值 你
  • 发布的 Android apk 出现错误“包文件未正确签名”

    我最近将我的应用程序上传到 Android 市场 但是由于错误 下载时它拒绝运行 包文件未正确签名 我首先使用 eclipse 发布了数据包 右键单击导出 创建密钥库然后发布 但它拒绝工作 然后我下载了 keytool 和 jarsigne
  • 有没有任何代码可以在android中设置壁纸而无需裁剪和缩放?

    我正在创建一个画廊应用程序 我的第一个应用程序 这是我的代码 Bitmap bmd BitmapFactory decodeStream is try getApplicationContext setWallpaper bmd catch

随机推荐

  • 在 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