Android中的Service介绍和生命周期
来源:互联网 发布:手机怎么制作软件程序 编辑:程序博客网 时间:2024/04/28 17:32
介绍:这篇博文是我很早之前在自己的微信公众号上发表的一片文章, 复习到Service,就拿出来在看看。原文地址:http://mp.weixin.qq.com/s?__biz=MzI5NDMzMjY1MA==&mid=2247483739&idx=1&sn=216500f24e9d51de1f77c4a0b3bb8f07&mpshare=1&scene=1&srcid=0223Si9KFxNqMpbNyRN3OI4N#rd
---------------------------------------------------------------------------------------------正文-----------------------------------------------------------------------------------------------------------------------------------
最近看书,看到Service,感觉对Service好陌生,所以在这里记录一点小笔记啦!
1、什么是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. Each service class must have a corresponding <service>
declaration in its package'sAndroidManifest.xml
. Services can be started with Context.startService()
and Context.bindService()
.
我自己的翻译加理解:
服务是一个应用组件,表现为:当一个应用不与用户交互时,希望执行长期运行的操作;或者是提供功能为其他应用所使用。在包下的AndroidManifest.xml中,每一个Service类必须有一个对用的<service>声明。Service能被Context.startService()或Context.bindService()启动。
2、Service的特征?
(1) Service在Android中是一种长生命周期的组件,它是一个类似于没有界面Activity,不实现与用户的交互。
(2)Service一直在后台运行,它没有用户界面,所以绝对不会到前台来。
(3)Service和Activity一样,它完全有自己的生命周期,都在主线程中运行,所以不能在Service中执行一些耗时的操作。
3、启动Service的两种模式
第一种:标准开启模式
在其他组件中调用startService()启动Service。Service一旦通过这种方式启动,访问者与Service之间没有关联,即使访问者退出了,该Service也会无限地运行下去,必须在组件中调用stopService()来停止它。当Service被停止时,系统会销毁它。
第二种:绑定模式启动
当程序通过startService()和stopService()启动、关闭Service时,Service和访问者无法进行通信和数据交换。如果访问者和Service需要通信和交换数据时,应该使用bindService()和unBindService()启动关闭Service。被绑定的Service是当其他组件调用bindService()来创建的。一个Service可以同时和多个访问者绑定,当多个访问者都解除绑定之后,系统会销毁Service.
下面对于绑定模式启动Service,直接上干货,一道简单的试题:
关于ServiceConnection接口的onServiceConnected()方法的触发条件描述正确的是?答案:B
(A)bindService()方法执行成功后
(B)bindService()方法执行成功同时onBind()方法返回非空IBinder对象
(C)Service的onCreate()方法和onBind()方法执行成功之后
(D)Service的onCreat()和onStartCommand()方法启动成功后
4、Service的生命周期
随着应用程序启动Service的方式不同,Service的生命周期也有差异。
当Activity调用bindService()绑定一个已经启动的Service时,系统只是把Service内部IBinder对象传给Activity,并不会把该Service生命周期完全绑定到该Activity,因此当Activity调用unBindService()方法取消与该Service的绑定时,并不能停止该Service。
- Android中的Service介绍和生命周期
- android service和生命周期
- Android Service生命周期(api使用介绍)
- Android基础:Service及其生命周期介绍
- Service介绍&生命周期详解
- android Service 生命周期和使用注意项
- Android Service 的生命周期和使用
- Android系统框架介绍和生命周期介绍
- Android 体系结构和Activity应用生命周期,Service 应用生命周期
- Android Service生命周期和本地Service的使用
- android service 生命周期
- 【Android】Service 生命周期
- android service生命周期
- android service生命周期
- Android 中Service生命周期
- Android Service生命周期
- android service生命周期
- android service 生命周期
- 树形DP-HDU2196
- 超级玛丽
- 图像自动去暗角算法(vegnetting
- 按钮控制显示隐藏
- Zero_One串
- Android中的Service介绍和生命周期
- List<Map<String, Object>>对其中的map按规则排序
- 最长升序和降序子序列-作业题
- extern,const,static
- win10 下安装Oracle 11g(问题:环境不满足最低要求)
- 最长升序和降序子序列-分分钟的碎碎念
- SQL语句中的正则表达示
- C/C++网络编程
- os.path相关函数介绍