DAY22:Service背景服务之简介

今天,我们要来说到背景服务的部分,当我们在完全关闭APP的情况下,所有工作也会停止,那麽我们就需要用到Service来执行背景作业。
Service最大的特点就是在APP完全关闭的情况下保持启动,且能够在执行时使用其他程序,在执行任务的期间,与我们使用者无关,它是会独立运行的,可以试想成当我们将Line或是Instagram这些通讯社交程序都滑掉关闭的时候,当有人传讯息等等,我们手机还是会跳出通知让我们看到,又或是说当我们在下载档案时,我们也能继续执行其他程序等待档案的下载,这些都是Service使用的范例。
那接着,我们就先来创建一个新的Service吧!按照下图路径创建
https://ithelp.ithome.com.tw/upload/images/20211007/201404880t5MxIC3pA.png
点选後会呈现如下图,名称部分我就使用预设的了,接着按下Finish。
https://ithelp.ithome.com.tw/upload/images/20211007/20140488L3X90yCWre.png
完成後,系统会自动产生MyService的类别档。
https://ithelp.ithome.com.tw/upload/images/20211007/20140488buHA9zUlYk.png
接着我们要来介绍启动Service,第一次产生要使用onCreate()的方法,之後就会自动呼叫onStartCommand()方法,将要执行的任务写在onStartCommand()中,要结束时呼叫stopSelf()使Service进行结束程序,之後皆会呼叫onDestroy()结束服务。
onStartCommand()扮演着接受外来请求并操作Service的角色,它的第一个参数intent可接受由Activity启动时所含的资讯,第二个参数表示启动的方法,第三个参数表示启动识别码。
返回值有三种定义:
START_NOT_STICKY:如果Service被结束时,便结束服务。
START_STICKY: 如果Service被结束时,回尝试启动并呼叫onStartCommand(),但Intent会被清空。
START_REDELIVER_INTENT:跟上一个一样,但Intent会被保留并重新输入。


<<:  React Hooks - useEffect

>>:  Day 23 Vue生命周期

[Day 05] Exposed 和资料库进行互动的方式之一:DSL

昨天我们成功和资料库进行了串接,但是我们只建立了一张资料表,还没有实际的处理资料内容。 今天我们尝试...

Day24 AWS - Route53 & Domain name

今日的教学会有购买域名(约每年12美元,系统会协助计算)及DNS映射的服务费(每个月0.5美元,量大...

[ Day 25 ] - 阵列的资料处理 - find

特性与用途 不会影响到原始阵列的资料 筛选符合条件的第一笔资料,并且回传至新的阵列 直接进入写法及范...

【从零开始的 C 语言笔记】第二十八篇-Struct的介绍与应用

上一篇结束後我们就介绍了完整的变数生命周期了,也提到了区域变数、全域变数、自动变数、静态变数的概念...

前端工程师也能开发全端网页:挑战 30 天用 React 加上 Firebase 打造社群网站|Day14 收藏文章

连续 30 天不中断每天上传一支教学影片,教你如何用 React 加上 Firebase 打造社群...