| |
|
开发:
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(服务) |
一、简介 Service是Android四大组件之一,也可以称为后台服务。Service是一个可以长期在后台执行而不用提供用户界面的应用组件。服务可由其它应用组件启动,即使切换到其它应用组件,服务依然会在后台继续运行。 此外,组件可以绑定到服务,并与之进行交互,甚至是执行进程间通信(IPC)。 例如,服务可以处理网络通信,播放音乐\电影,执行文件I/O,这一切的操作都是在后台进行的。 服务分为两类,第一类是本地服务(Local Service);第二类为远程服务(Remote Service)。 二、服务注册 服务(Service)与Broadcast Receiver(广播)一样在Androidmanifest.xml(清单文件)中注册。
(1). exported是设置是否允许其它应用启动此服务,默认值是通过是否有intent-filter来设置,有intent-filter为true,反之为false。当为true时,允许其它应用启动此服务。 (2).android:permission是设置服务权限,只有申请了此权限的应用的才能启动并调用此服务。 三、服务启动 1. 通过startService启动服务 停止服务 2. stopSelf():通过此方法在服务自身停止本服务。 服务生命周期 (1). onCreate()方法; (2). onStartCommand(Intent intent, int flag, int startId)方法;(允许组件启动服务) 2. 在调用stopService(...) 方法停止服务后,服务内部调用方法流程: (1). onDestroy()方法;// 销毁服务 PS:在下次再次启动服务(调用startService(...)方法)时,会再次从onCreate(...)方法开始。当然,在服务已经启动了,再次使用startService(...)方法启动服务,就不会从onCreate(...)方法开始执行,因为,服务已经启动了,只会从onStartCommand(...)方法开始。 特点:使用startService(...)开启服务,服务就和调用者(开启者)没有任何关系了,即使调用者(开启者)退出了或者挂掉了,服务依然在后台运行,不会随着调用者(开启者)退出或者挂掉而结束,只能通过stopService(...)或者服务内部方法stopSelf()方法停止,服务停止立即销毁(就是会调用onDestroy()方法)。并且这种服务开启方式是不能调用服务内部方法的。(startService(...)开启的服务也可以称为远程服务) 2. 通过bindService启动服务 使用bindService(...)启动服务是不会调用onStartCommand(...)方法的。 可以通过unBindService(...)方法停止服务。 生命周期: onCreate() --> onBind() --> unOnBind() --> onDestory() 特点:使用bindService()方法启动服务,绑定服务后,组件的生命周期结束,服务的生命周期也随之结束,也就是调用者(开启者),退出或者挂掉后,服务也随之结束。通过bindService(...)方法启动绑定的服务,调用者(开启者)可以调用服务的内部方法。(通过bindService(...)开启的服务,也可以称为本地服务) 四、服务(Service)生命周期内所有方法(包括两种开启方式)
|
|
移动开发 最新文章 |
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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:40:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |