首页 > 其他分享 >IntentService入门

IntentService入门

时间:2023-03-30 20:04:02浏览次数:31  
标签:入门 Service 处理 投递 IntentService Intent intent


IntentService提供的功能是来处理异步工作的。 
工作流程也非常简单,客户端通过startService(Intent) 方法来调用,服务启动后,开启worker线程来顺序处理intent的任务。注意这里,一个intentService可以处理多个任务,只不过是一个接着一个的顺序来处理的;AsyncTask通常情况是每个任务启动一个新的asycnTask来工作,一个asyncTask只能使用一次,当你想再次使用的话,只好再new一个任务,否则要报异常的。从表象上看,这是两者的区别。当任务完成后,IntentService自动停止。 
IntentService是继承自Service的,从源码上看,它是Service、HandlerThread和Handler的强强联合。源码也比AsyncTask简单,有兴趣的童鞋可以去看看。

因为IntentService本身是继承自Service,所以在使用的时候要先在AndroidManifest.xml中注册,否则报错:Unable to start service Intent not found 
IntentService有7个方法,其中最重要的是onHandleIntent(),在这里调用worker线程来处理工作,每次只处理一个intent,像上面描述的,如果有多个,它会顺序处理,直到最后一个处理完毕,然后关闭自己。一点都不用我们操心,多好。 
再介绍另一个很有意思的方法,setIntentRedelivery()。从字面理解是设置intent重投递。如果设置为true,onStartCommand(Intent, int, int)将会返回START_REDELIVER_INTENT,如果onHandleIntent(Intent)返回之前进程死掉了,那么进程将会重新启动,intent重新投递,如果有大量的intent投递了,那么只保证最近的intent会被重投递。这个机制也很好,大家可以尝试着用。 

标签:入门,Service,处理,投递,IntentService,Intent,intent
From: https://blog.51cto.com/u_548275/6160136

相关文章

  • 自制MCU的入门教程
    前言春意已起,却乍暖还寒。三四月的交接,是冷与暖的拥别。说明如今,以ChatGPT为代表的的人工智能驱动的语言处理系统已经火爆全网,开始渗透进日常生活;各种AI图像生成工具也大行其道,精美的生成图比肩专业的设计师。这些AI应用的广泛而快速的普及,是真的能够替代一些人的职位,导致失......
  • 【入门】Go语言Map集合详解
    目录一、Map集合介绍1.1什么是Map集合?1.2Map集合语法二、Map基本操作2.1定义Map2.2获取Map2.3修改Map元素2.4删除Map元素2.5遍历Map三、案例3.1案例一3.2案例二一、Map集合介绍1.1什么是Map集合?map集合是一种无序的键值对的集合map是通过key来快速检索数据,key类似......
  • Metasploit入门到高级【第三章】
    来自公粽号:Kali与编程预计更新第一章:Metasploit简介Metasploit是什么Metasploit的历史和发展Metasploit的组成部分第二章:KaliLinux入门KaliLinux简介KaliLinux安......
  • Metasploit入门到高级【第四章】
    来自公粽号:Kali与编程预计更新第一章:Metasploit简介Metasploit是什么Metasploit的历史和发展Metasploit的组成部分第二章:KaliLinux入门KaliLinux简介KaliLinux安......
  • Netty了解与入门
    Netty了解与入门什么是Netty?Netty是一个基于NIO(Non-blockingIO)的网络应用框架,其目的是帮助开发人员快速而简单地开发高性能、可扩展性好的网络应用程序。Netty提供了简单而......
  • 快速入门
         jar包:       ......
  • Redux入门
    一、认识Redux二、创建Redux第一个程序2.1、安装命令安装稳定版:npminstall--savereduxnpmiredux2.2、创建一个文件夹reduxstate1、在文件下创建一个count......
  • 全网最详细中英文ChatGPT-GPT-4示例文档-表格智能生成从0到1快速入门——官网推荐的48
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载......
  • Java入门2
    Java2java的内存划分程序计数器,本地方法栈,虚拟机栈,堆,方法区(......
  • Java入门3
    面向对象1面向对象,更在乎的结果,而过程的实现并不重要IDea快捷键(基础版)快捷键作用ctrl+/快捷注释ctrl+shift+/多行注释ctrl+d快速复制ctrl......