Android服务生命周期详解:启动与绑定
需积分: 9 173 浏览量
更新于2024-07-10
收藏 1.56MB PPT 举报
"服务的生命周期回调方法-android新技术, 3G应用开发之Android"
在Android开发中,服务(Service)是一个非常关键的组件,用于在后台执行长时间运行的任务,不与用户界面直接交互。服务的生命周期回调方法是理解如何正确管理和控制服务行为的基础。
1. **服务的生命周期回调方法**
- **当使用`Context.startService()`启动服务**:
- `onCreate()`:这是服务首次被创建时调用,无论启动多少次,只会调用一次。
- `onStartCommand()`:替代了旧版的`onStart()`方法,根据传入的Intent和返回的StartCommandResult值来决定服务应该如何运行。多次调用`startService()`会多次调用`onStartCommand()`,但不会重新创建服务。
- `onDestroy()`:服务被停止时调用,可能是系统需要回收资源或者`stopSelf()`或`stopService()`被调用。
- **当使用`Context.bindService()`启动服务**:
- `onCreate()`:同上,服务首次创建时调用。
- `onBind()`:当客户端通过`bindService()`连接服务时调用,返回一个Binder对象供客户端进行通信。
- `onUnbind()`:所有客户端解绑后调用,若重载该方法并返回true,表示服务希望在无绑定客户端时仍然存活,此时系统可能会调用`onRebind()`,当有新的客户端绑定时。
- `onRebind()`:当`onUnbind()`返回true且有新客户端绑定时调用。
2. **混合启动服务的生命周期**:
如果先使用`startService()`,再使用`bindService()`,接着`unbindService()`,最后再次`bindService()`,生命周期顺序为:
- `onCreate()` -> `onStartCommand()` -> `onBind()` -> `onUnbind()`(重载并返回true)-> `onRebind()`。
3. **3G技术简介**
3G,即第三代移动通信技术,是将语音通信和数据通信融合,提供高速数据传输能力的通信系统。中国的3G标准有三种:中国联通的WCDMA,中国电信的CDMA2000,以及中国移动的TD-SCDMA。2.5G,如CDMA2000 1X和GPRS,是2G向3G过渡的技术,提供了更快的数据传输速度和更丰富的服务,如WAP和蓝牙。
4. **智能手机软件平台**
- Symbian:早期流行的智能手机操作系统,市场份额最高。
- Windows Mobile:微软开发的操作系统,适用于多种设备。
- RIM BlackBerry:黑莓手机的专用操作系统。
- iPhone:苹果公司的iOS操作系统,封闭且优化良好。
- Android:Google主导的开源操作系统,逐渐占据市场主流。
- Java / J2ME:跨平台的Java移动应用开发环境。
5. **Android系统架构**
Android操作系统基于Linux内核,软件堆层包括操作系统、中间件和应用程序。底层由C/C++编写,负责基础功能;中间件层支持各种服务和API;应用程序层包含预装应用和开发者编写的第三方应用,主要使用Java编写。
理解服务的生命周期回调方法对于开发高效、稳定的Android服务至关重要,同时了解通信技术背景有助于开发者更好地适应不同网络环境下的应用需求。
2019-07-09 上传
2011-12-13 上传
1734 浏览量
点击了解资源详情
2021-06-02 上传
2021-02-20 上传
2021-05-19 上传
2021-07-02 上传
2021-03-20 上传
深井冰323
- 粉丝: 24
- 资源: 2万+
最新资源
- PIEROutil:PIERO的AR客户端库(http
- terraform-courses
- bender:JIRA微管理助手
- phywcri,c语言曲线拟合源码下载,c语言
- PersonAttributeExt:人物属性提取
- 基于JAVA图书馆座位预约管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
- poordub:可怜的人的PyDub
- system-simulation:使用 networkx python 库在图上模拟医院位置
- 4411513,socket源码c语言,c语言
- 52挂Q v1.3
- app-status
- srpagotest
- kettle的web版本,自己编译的war包,直接放到tomcat下运行,然后http://localhost:8080/web
- Ksdacllp-Backend:Ksdacllp后端
- chromedriver-linux64-V124.0.6367.91 稳定版
- php-pdf-filler