位置: 编程技术 - 正文

夯实基础:Service(夯实基础怎么读)

编辑:rootadmin
什么是 Service?

推荐整理分享夯实基础:Service(夯实基础怎么读),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:夯实基础的意思是什么,夯实基础,厚积薄发,夯实基础读hang还是ben,夯实基础的意思是什么,夯实基础的意思是什么,夯实基础怎么读,夯实基础的意思是什么,夯实基础的意思是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

一如既往,从官方解释开始:Service 是 Android 应用中的组件,其使用场景如下:

应用想要执行一个不需要与用户进行交互的持续运行的操作为其他应用提供功能

A Service is an application component representing either an application’s desire to perform a longer-running operation while not interacting with the user or to supply functionality for other applications to use.

可能很多人看到这里会感觉 Service 很像进程/线程,但实际上 Service 既不是进程也不是线程。因为:

除非开发者让 Service 运行在某个进程中,通常情况下,Service 都会运行在应用所在的进程中。

让 Service 成为远程服务则会另开一个进程,一般用作提供系统服务,而且实现会比较麻烦,因为需要用 AIDL 通过 IPC 进行通信。

Service 不是线程,因为 Service 就运行在主线程中,我们可以把 Service 当成是 Android 的一种机制

注:但 Service 的子类 IntentService 则另开了一个 worker 线程完成相应的任务,IntentService 内部有一个消息队列和消息管理器。所以对于异步的 Service 请求,IntentService 能够通过消息队列按序处理请求,并且每一个请求都在非主线程 - worker 线程中被处理,不会对主线程造成影响。

Service 的特性

Service 能够与系统进行通信。Service 通过 Context.startService() 方法告知系统 Service 想要在后台执行的任务(即便这个任务不是由用户产生),而后系统将执行该任务,直到该 Service 被停止(可能是通过代码完成,也可能是直接关闭了应用的进程,或者其他……)

Service 能够为其他应用提供功能。应用通过 Context.bindService() 与 Service 建立长期连接,进行交互,让 Service 的功能模块帮助自己完成某些任务

Service 的生命周期夯实基础:Service(夯实基础怎么读)

首先看看官方的图吧:

Service 有两种启动方法:startService() 方法和 bindService() 方法,虽然具体实现不太相似,但启动-关闭过程是一样的。值得注意的是,无论你调用 startService() 方法多少次,只要调用 Context.stopService() 方法或 stopSelf() 方法,Service 就会被终止。那 Service 中的任务还没执行就被终止了咋办?莫慌,Service 的 stopSelf() 方法可以让 Service 被处理之后才被终止。

还有一点就是,onCreate() 方法并不是一定会执行,如果 Service 已经存在,就不会执行 onCreate() 方法创建 Service,而是直接执行 Service 的 onStartCommand() 方法,启动 Service 执行相关任务。

Service 的使用

下面是一个最最最简单的范例:

注意事项

Service 有时候会被系统杀掉(可能是因为内存不够、也可能是被各种手机卫士杀了),而 Service 可能跟某些功能相关,杀掉之后功能就不能用了。那么我们要咋办呢?

提高 Service 的优先级:可以在 AndroidManifest.xml 中对通过 android:priority = “” 属性将 Service 的优先级设置为最高;当然了,将 Service 通过 setForeground() 方法设置为前台任务也可以提高优先级

使用 AIDL 进行跨进程通信,通过另一个进程的 BroadcastReceiver 发送广播,保证你的 Service 始终存在(杀死则通过广播重启)

在 Service 的 onDestroy() 方法内重启 Service

Android APK反编译 前言为什么需要APK反编译?是因为我们在平时开发APK的过程中,可能会遇到一些功能不知如何实现,但是有的软件已经实现了该功能,但是没有开源。

重写SimpleAdapter的getView以实现按钮点击响应 SimpleAdapter是四个适配器里最重要的适配器,它不仅实现了数据的绑定,而且可以自定义控件。在自定义控件时,如果使用了按钮、复选框、单选框等需

Android------绑定本地Service并与之通信 绑定本地Service并与之通信:应当使用bindService和unbindService方法启动、关闭Service。bindService(Intentservice,ServiceConnectionconn,intflags);解释参数:service:该参数

标签: 夯实基础怎么读

本文链接地址:https://www.jiuchutong.com/biancheng/381073.html 转载请保留说明!

上一篇:Android---41---Service简介

下一篇:Android APK反编译(手机端apk反编译工具_android反编译工具)

  • 混合销售行为如何缴纳增值税税率
  • 海南增值税发票图片
  • 缴纳增值税会计处理
  • 生产型企业直接进口产品是否可直接出口
  • 两家公司原材料能否借用
  • 项目所在地预缴增值税
  • 汇算清缴所得税是什么意思
  • 房屋赠与时契税的计税依据
  • 劳务报酬所得如何计税
  • 错账更正分录
  • 信用卡产生滞纳金
  • 装修公司怎么交钱
  • 亏损企业股东年底借钱未还
  • 抵扣勾选和退税勾选选错了怎么办
  • 企业什么税可以退
  • 培训费可以抵扣企业所得税
  • 旅游业差额的会计分录
  • 公司费用种类
  • 期间费用包括哪些?
  • 如何填制记账凭证总结
  • 核算错误和重分类错误
  • 零申报的企业年末的利润表可以为零吗?
  • 进项税和销项税借贷方向
  • 企业所得表怎么填写
  • 银行承兑汇票接收
  • 如何给电脑重装系统教程
  • 在php中,字符串有哪些表示形式
  • PHP:Memcached::setMulti()的用法_Memcached类
  • win10平板模式怎么切换
  • 二次规划是什么意思
  • 非货币性资产交换
  • arcgis图案填充
  • php image
  • php顺序查找和二分查找
  • 股权置换和股权转让
  • php上传文件类型
  • 广告费与业务宣传费范围
  • 交通银行手机银行网页版
  • 长期应付款的会计编号
  • 房产自用改为出租如何申报房产税
  • 无盘领发票要怎么办
  • 企业所得税是先预缴吗
  • 帝国cms商城源码
  • mongodb4.4.2安装教程
  • 增值税不含税销售额填在哪里
  • 普通发票销货清单
  • 存款对银行经营的意义
  • sql server 2008数据库没有备份文件恢复
  • 买房返现是什么意思
  • 认缴制下实收资本如何证明
  • 只有进项税月末要转入未交增值税么
  • 研发费用形成无形资产的摊销怎么处理
  • 公对公转账货款写成了往来款怎么办
  • 免抵退税和留抵退税计算题
  • 一般纳税人房租租赁费的税率
  • 所得税减免的企业税率
  • 营业外支出包括哪些?
  • 哪些账户期末结账后一定无余额
  • 上年未结转金额是什么意思
  • 报销需要发票吗?
  • 作废发票丢失怎么补办
  • 会计存货包括生产成本
  • 三种实现方法实现的特点
  • mysql数据库简单介绍
  • windows开发了多久
  • solaris11下载
  • 滑动关闭电脑功能按键在哪找
  • windowsxpwifi
  • linux怎么禁用用户
  • javascript函数的作用
  • div li
  • django sessionid
  • perl 文本文件处理
  • 数据库多表连接的几种方式
  • jQuery基于muipicker实现仿ios时间选择
  • numpy使用心得
  • 小规模纳税人土地使用税减免政策
  • 于开年 山东省国家税务局
  • 学校经费审批流程
  • 天津市网签查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设