艺考网
全国站

12Android基础知识服务

xunaa
2024-10-08 00:16:48
编辑说
啥也不说,先看图
Service 定义
服务是一个基本组件,可以在后台长时间执行,无需用户交互。 Service运行在主线程上,不能执行耗时的操作。线程一般是指新创建的子线程,不能更新UI

啥也不说,先看图

Service 定义

服务是一个基本组件,可以在后台长时间执行,无需用户交互。 Service运行在主线程上,不能执行耗时的操作。线程一般是指新创建的子线程,不能更新UI。

Service 生命周期

服务的生命周期,以预期方式相关。启动方式有两种:主动启动和绑定启动。看一下两种启动方式的流程图。

Service流程中核心方法如下

onCreateonStartCommandonBindonDestory

Service 的优先级

Service 根据使用场景,可以区分三种:前台、后台、bind。不同类型有不同的优先级。优先级越低,当系统资源紧张时,越容易被系统回收。

优先级顺序:前台绑定后台

在androidmanifest中,还可以配置服务的优先级android:priority='xxxx',xxxx可以配置为整数。数字越大,优先级越高。最高值为1000。

JobScheduleService

JobIntentService 是Android 8.0 中新的Service 子类,取代了IntentService。 8.0系统以后,禁止在后台直接创建Service,但是可以创建JobIntentService。官方定义如下:

用于处理已排队等待作业/服务的工作的帮助程序。在Android O 或更高版本上运行时,工作将通过JobScheduler.enqueue 作为作业进行分派。当在旧版本的平台上运行时,它将使用Context.startService 。说明:JobIntentService 是一个辅助工具,用于处理添加到队列中的作业/服务任务。当运行在Android O或更高版本上时,任务将通过JobScheduler.enqueue()作为作业分发;当在旧版本平台上运行时,任务仍将使用Context.startService() 执行

Android 8.0及以上版本JobIntentService和JobService做同样的事情,它们都是在等待JobScheduler分配任务来执行。

不同的是,JobService使用的handler使用的是主线程的Looper,所以需要在onStartJob()方法中手动创建一个AsyncTask来执行耗时的任务,而JobIntentService则帮我们处理这个过程。使用它时,你只需要编写你需要做的任务逻辑就足够了,不需要担心阻塞主线程。另外,将任务操作传递给JobScheduler也更容易。 JobInfo中不需要指定参数,直接使用enqueueWork()方法即可。这有点像Service和IntentService的关系。

12Android基础知识服务

BroadcastReceiver

广播的定义很容易理解。有一个发送者和一个接收者。它可用于在不同应用程序、同一应用程序的不同组件和进程之间进行通信。根据发送者的不同,广播可以分为以下四种类型:

按照注册方式可以分为普通广播、有序广播和本地广播系统广播两种。

静态注册动态注册

发送和接收流程

广播接收者(BroadcastReceiver)通过Binder机制向AMS注册成为广播接收者。广播发送方通过Binder机制向AMS发送广播。 AMS搜索满足条件(IntentFilter、Permission)的BroadcastReceiver,将广播发送到对应Receiver的队列中,执行消息循环获取广播,并回调BroadcastReceiver

本地广播 普通广播

的onReceiver方法。与普通广播相比,本地广播更加安全、高效。本地广播仅在应用程序内部发送,因此无需担心隐私泄露。其他应用程序无法发送广播,因此无需担心安全漏洞。本地广播内部通过Handler实现,不涉及跨进程通信,效率更高。

ContentProvider

ContentProvider是内容提供者,一般用于app之间的数据交互和共享。底层仍然使用Binder机制进行通信。

访问 ContentProvider

访问ContentProvider的流程大致如下

看下面的示例代码

//查询用户字典并返回结果cursor=getContentResolver().query( UserDictionary.Words.CONTENT_URI, //单词表投影的内容URI, //每行返回的列selectionClause, //选择条件selectionArgs, //选择标准sortOrder); //返回的rowsquery方法的参数的排序顺序。比较SQL 语法以查看差异。

query() argumentSELECTNotesUriFROM table_nameUri 映射到名为table_nameprojection 的提供程序中的表col,col,colProjection 是一个列数组selectionWHERE col=valueSelection 指定选择行的条件selectionArgssortOrderORDER by col,colsortOrder 指定行在返回的Cursor 中出现的顺序

可以理解为ContentProvider提供了一种更加方便、丰富的数据访问方式,可以实现读写分离,更加安全可靠。

安卓

用户评论

心贝

想学习安卓开发,了解下 Service 这个组件很关键啊!

    有20位网友表示赞同!

志平

要深入学习 Android 的开发,必须得搞明白 Service 了。

    有17位网友表示赞同!

执笔画眉

正好在学 Service,这个课程对入门很有帮助!

    有15位网友表示赞同!

又落空

Service 主要用于后台运行,很多系统功能都要用到它。

    有15位网友表示赞同!

各自安好ぃ

Service 的生命周期和常见使用案例都会讲解?

    有12位网友表示赞同!

醉红颜

Android 开发面试肯定会被问到 Service 的知识点啊!

    有20位网友表示赞同!

巷陌繁花丶

12 个 Android 基础知识,听起来很全面!

    有13位网友表示赞同!

我要变勇敢℅℅

想了解如何管理资源、绑定服务等,这门课程就很棒。

    有10位网友表示赞同!

爱情的过失

Service 和 BroadcastReceiver 有什么区别呢?

    有18位网友表示赞同!

夏日倾情

学习 Service 的时候,一定要注意它的工作机制啊!

    有13位网友表示赞同!

仰望幸福

课程讲的 Service 应用场景丰富吗?

    有10位网友表示赞同!

金橙橙。-

这个系列课程能不能也涵盖安卓开发的其他组件呢?

    有14位网友表示赞同!

作业是老师的私生子

android基础知识掌握了Service之后就可以进行深入开发了!

    有7位网友表示赞同!

你是梦遥不可及

服务好难懂呀,希望能有更直观的讲解。

    有6位网友表示赞同!

伤离别

对 Service 的学习非常感兴趣!

    有20位网友表示赞同!

熟悉看不清

想要提高Android开发技能,这个课程必看啊!

    有6位网友表示赞同!

搞搞嗎妹妹

Service 真的挺重要的一个特性,需要多了解了解!

    有18位网友表示赞同!

(り。薆情海

刚入门 Android 开发,希望有适合初学者的课程讲解。

    有19位网友表示赞同!

浮光浅夏ζ

期待12个基础知识中包含 Service 使用的常见代码示例!

    有15位网友表示赞同!

免责声明
本站所有收录的学校、专业及发布的图片、内容,均收集整理自互联网,仅用于信息展示,不作为择校或选择专业的建议,若有侵权请联系删除!

大家都在看

12Android基础知识服务

12Android基础知识服务

啥也不说,先看图 Service 定义 服务是一个基本组件,可以在后台长时间执行,无需用户交互。 Service运行在主线程上,不能执行耗时的操作。线程一般是指新创建的子线程,不能更新UI
2024-10-08
服务这个词有多重含义,整理出第三个

服务这个词有多重含义,整理出第三个

12) 服务用于表示有用和有帮助——它可以指设备、车辆、机器等,也可以指人。例如,为他人服务就是对他人有帮助。该船将在两年内退役。该船将在两年内退役,即不再使用。 13) 服
2024-10-08
维修故障灯是什么?

维修故障灯是什么?

(此处已添加小程序,请前往今日头条客户端查看) 2、可能性很多,需要进一步检查。仅仅因为维修灯亮起并不意味着您的车辆存在严重故障。这只是一个警告信号,告诉您需要进一步检查
2024-10-08
K8s日常笔记(36)服务概述

K8s日常笔记(36)服务概述

Service介绍 在k8s中,pod是应用程序的载体。我们可以通过Pod的IP来访问应用程序,但是Pod的IP地址是不固定的,这意味着直接使用Pod的IP进行外部访问是不方便的。 为了解决这个问
2024-10-08
英语早读必听:七年级英语第一册第八单元单词及录音

英语早读必听:七年级英语第一册第八单元单词及录音

第八单元 当[wen] adv.什么时候 月[mn] n。月;月 一月['dnjuri] n.一月 二月['februri] n.二月 三月[m:t] n.行进 四月['eiprl] n.四月 May [mei] n.五月 六月[du:n] n.六月
2024-10-08
单词关联包含有关

单词关联包含有关

英国/pten/美国/prten/ v. 适合,大约,适用;法律隶属关系、归属;正式(在特定时间或地点)有效、现有 网络相关/ 同义词 六. 属于;关于;适合于 齿轮服务 词源 属于;相关于 词根词缀:perc
2024-10-07
三年级英语第一卷第五单元它是什么颜色?

三年级英语第一卷第五单元它是什么颜色?

01单词: 1. 红色/红色/形容词(红色);名词(红色) 2. 颜色/'kl/名词(颜色);动词(颜色.) 3. 蓝色/blu:/形容词(蓝色);名词(蓝色) 4. 猜/ges/动词(猜测);猜测(第三人称单数) 5. green /gri:n/形容词(
2024-10-07
外语研究院新标准英语9 M7U23关键句集

外语研究院新标准英语9 M7U23关键句集

1.英语被用作工作语言,例如,老板和秘书之间、医生和病人之间,尽管还有其他日常使用的语言。英语被用作工作语言,例如,在老板和秘书之间、医生和病人之间,尽管还有其他日常使用的语
2024-10-07
又长又难的英语句子没什么好或正常的

又长又难的英语句子没什么好或正常的

先找生词。 结果;正常正常; 符合(与.)一致;符合; 要求要求; 再找主干。 这句话是主从复合句。句子不是很长,但是看起来很奇怪。主句没有什么看起来是好的或正常的;不符合自由市场要求
2024-10-07
暖心:生活似乎很快就会扭转

暖心:生活似乎很快就会扭转

你明白喜欢和爱的区别吗? -是的,你喜欢我,我也爱你。 不要放弃。不要崩溃。生活似乎很快就会发生逆转。 不要放弃,不要失控地哭泣,生活很快就会好起来的。 做你自己比做别人要好
2024-10-07