对Android Service的一些理解
来源:互联网 发布:武汉优化jw100 编辑:程序博客网 时间:2024/06/01 07:54
Service是Android四大组件之一,用于在后台处理一些操作、提供服务,没有提供用户接口、没有界面。
Service业运行于所属进程的主线程,也不能直接进行网络请求等耗时操作,需要开启新线程来进行耗时操作,或者使用IntentService。
Service有两种启动方式,根据启动方式不同,Service分两种,一种是本地服务,通过startService调用服务,一种是远程服务,通过bindService.
本地服务,调用组件通过onStart/ onStartCommand()方法开启服务,服务开启后会在后台一直运行,不管调用组件有没有被销毁。因此,通常需要在服务完成后手动的进行服务关闭。关闭服务有两种方式,一是调用组件通过stopService来停止服务,二是Service本身通过stopSelf或者Service.stopSelfResult()来停止。无论调用了多少次startService(),都只需调用一次stopService()来停止。
通常started状态的service执行单任务并且不返回任何结果给启动者。比如当下载或上传一个文件,当这项操作完成时,service应该停止它本身。
远程服务,即bindServie,调用组件可以通过bindService()建立连接,绑定服务,通过unbindService()方法解除绑定,bindService可以被多个调用组件绑定,当所有的调用组件都销毁时,bindService就会自动销毁。一个绑定的service提供一个允许组件与service交互的接口,可以发送请求、获取返回结果,还可以通过夸进程通信来交互(IPC)。
bindServie提供的服务给可被其他应用复用,比如定义一个天气预报服务,提供与其他应用调用即可。
关于生命周期:
一、
二关于Service生命周期还有一张比较易懂的图(来源于http://blog.csdn.net/ryantang03/article/details/7770939)
- 对Android Service的一些理解
- 对Android Service的一些理解
- Android:对service的一点理解1
- Android:对Service的一点理解2
- 浅谈对Android Service 的理解
- Android 对View的一些理解
- 对Android权限一些新的理解
- 对Android进程优先级和Service的理解
- Android笔记--对Service、Object、Contentprovider、泛型的理解
- Day11-Android中对Service的理解(回答下面问题)
- 关于Service的一些理解
- 关于Service的一些理解
- 收藏的网上对一些名词的理解:如jsp、action、service、dao、PO等
- Android学习札记3:对View.MeaureSpec的一些理解
- 对Android动画中Martix和Camera的一些理解
- 对Android 回调机制的一些理解
- 对一些概念的理解
- 对Jazz的一些理解
- C#中的MessageBox消息对话框
- 第4天
- java多线程之--线程池的创建
- get提交和post提交整理
- 程序员必备网络监视神器-TcpView
- 对Android Service的一些理解
- [Java开发之路](7)RandomAccessFile类详解
- LeetCode 2 Add Two Numbers
- 数据传输加密技术分析
- PAT-求自定类型元素的最大值(基础函数题)
- 是时候改变你的开发方式了-XAF信息系统快速框架介绍
- JavaScript正则表达式(小白收集用)
- Java并发编程:Callable、Future和FutureTask
- JAVA:Collections类的shuffle()方法