| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android Service介绍 -> 正文阅读 |
|
[移动开发]Android Service介绍 |
什么是ServiceService提供了两个主要的功能:
Service的生命周期(对应两种启动方式)? ?
4.onRebind(Intent intent) 仅当onUnbind(Intent)的实现被重写以返回true时,才调用此方法。 5.onUnbind(Intent intent) 当所有客户端都与服务发布的特定接口断开连接时调用。 默认实现不执行任何操作,并返回false。 6.onDestroy () 当运行的设备配置发生更改时,系统调用此方法。与Activity等其他组件不同,当这个回调发生时Service不会重走生命周期。 Service的使用??1.首先我们需要创建一个继承了android.app.Service的类。 2.AS通常会在我们创建service类后自动在清单文件内加入service的声明,若没有的话就需要我们手动添加。
?3.在activity或其他上下文中启动service。 启动服务
绑定服务
解绑服务??
停止服务
开启前台服务 前台服务是那些被认为用户知道且在系统内存不足的时候不允许系统杀死的服务。前台服务必须给状态栏提供一个通知。 最常见的表现形式就是音乐播放服务,应用程序后台进行时,用户可以通过通知栏,知道当前播放内容,并进行暂停,继续,切歌等相关操作。 startForegroundService(new Intent(this, TestService.class)); 启动前台服务后必须在service中创建并其他一个前台的通知。否则程序会出现错误。
停止前台服务 在服务停止时需要移除通知。可以写在service的ondestroy当中。
什么是IntentServiceandroid.app.IntentService 的本质就是一个 android.app.Service。 它需要在 AndroidManifest.xml 中注册 <service /> 节点,并可以 startService() 的形式启动。它是Android官方引入的用于执行“耗时任务”的服务抽象类。 传统的 Service 里的代码都是运行在主线程里的,而对于服务这种天生就被设计成更适合“在后台默默工作”的机制来说,我们又常常需要它执行一些耗时型的操作,主线程是不建议做耗时操作的。因此,我们常常会在服务中创建子线程来做耗时操作。而IntentService就是Android官方提供的在普通Service里搭建好了用于执行耗时任务的子线程的特殊Service。 IntentService的原理IntentService的本质就是一个普通Service里面加装了一套运行在子线程的Handler机制。 IntentService的使用IntentService的启动和普通的service一致,onHandleIntent(Intent intent)是执行在子线程中的,所以我们可以把耗时操作放在这个回调中。 其他的生命周期都是在主线程当中,我们连续调用了五次startService(intent)之后,onStartCommand依次被调用了五次,然后依次执行了onHandleIntent五次,这样就依次完成了job,当最后一个job完成,也就是在最后一次onHandleIntent调用完成之后,整个IntentService的工作都完成,执行onDestroy回调方法,IntentService销毁。 所以IntentService在onHandleIntent执行完成后是会自动销毁的。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/28 11:43:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |