Android的三种绑定方式
一、概念相关:
1. Activity中的几个方法与Service组件中的几个方法的联系
Activity Service startService(intent) ---(调用)-----> onCreate() 、onStart() stopService() ---(调用)-----> onDestroy() bindService() ---(调用)-----> onCreate()、onBind() unbindService() ---(调用)-----> onUnbind()、onDestroy()
Android绑定服务、通过中间人调用服务(单一App内)里已经讲到的:
1.startService启动方式:
onCreate()–> onStartCommand()/onStart() —> onDestory();
1)创建服务onCreate()在整个生命周期仅执行一次,每次调用服务都会执行onStart()或onStartCommand();
2)停止服务onDestory()在整个生命周期仅执行一次;
3)服务一旦启动,生命周期将不受限于UI线程。应用(Activity)终止,服务仍然在后台运行;
4)直接启动的服务,其它应用不能调用其中的功能。
2.bindService绑定方式
onCreate() —> onBind() —> onUnbind() –> onDestory();
1)创建服务onCreate()在整个生命周期仅执行一次;
2)每次调用服务必须首先bindService/onBind,执行unbindService/onUnbind后不能调用;
3)服务的生命周期受限于UI线程。一旦应用(Activity)终止,服务将onDestory销毁;
4)可以在绑定后调用服务里的功能。
3.混合调用(须按顺序操作):
1)首先在主界面创建时,startService(intent)启动方式开启服务,保证服务长期后台运行;
2)然后调用服务时,bindService(intent, connection, BIND_AUTO_CREATE)绑定方式绑定服务,这样可以调用服务的方法;
3)调用服务功能结束后,unbindService(connection)解除绑定服务,置空中介对象;
4)最后不再需要服务时,stopService(intent)终止服务。
二、混合调用示例:
1.绑定方式bindService:
下载 “bindService绑定服务示例” bindService-demo.rar – 已下载120次 – 3 MB
2.混合方式:
下载 “服务启动混合方式示例” startAndBindService.rar – 已下载264次 – 3 MB
声明
本文由 vigiles 原创,转载请注明出处:http://www.cuiweiyou.com/314.html
Android的三种绑定方式相关推荐
- Android 的三种定位方式
转载自:http://blog.csdn.net/luosiye312/article/details/50562309#comments Android 定位大致分为三大类:GPS定位:Networ ...
- android画面数据存储方式,Android的三种储存方式
SharePreferences SharePreferences适合用来保存相对较小的键值集合,比如应用程序的配置文件,它本质是存放在/data/data/[包名]/shared_prefs文件夹下 ...
- Android之Android Studio三种方式导入外部资源 以及 报错处理
Android Studio三种方式导入外部资源 以及 报错处理 android studio提供了三种方式导入外部资源: 1. Library dependency – 在线添加.需联网下载 . 2 ...
- Android的三种网络联接方式(URL / HttpURLConnection | HttpClient | InetAddress )
Android SDK 中一些与网络有关的package,如下: 包描述 java.net 提供与联网有关的类,包括流和数据包(datagram)sockets.Internet 协议和常见 HTTP ...
- Android的surface的三种工作方式
注:文章内容是基于kitkat进行的粗线条分析,做为学习过程中的小结. Surface的三种使用方式 Native层的Surface工作方式有:仅在Proxy端.Proxy和Service端协同.仅在 ...
- python中if brthon环境安装包_Ant、Gradle、Python三种打包方式的介绍
今天谈一下Androdi三种打包方式,Ant.Gradle.Python. 当然最开始打包用Ant 很方便,后来转Studio开发,自带很多Gradle插件就用了它,然后随着打包数量越多,打包时间成了 ...
- Android 中三种启用线程的方法
多线程就是分时利用CPU,宏观上让所有线程一起执行 ,也叫并发 先调用start后调用run 1.start()方法来启动线程,真正实现了多线程运行. 这时无需等待run方法体代码执行完毕,可以直接继 ...
- Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)
阅读目录 一.MVC与MTV 二.多对多表的创建 三.ajax,前后端传输编码格式contentType 四.批量插入数据与自定义分页器 摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端 ...
- Android方法的概括,Android_Android中startService基本使用方法概述,Android中有两种主要方式使用Ser - phpStudy...
Android中startService基本使用方法概述 Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindServi ...
- AutoLayout的三种设置方式之——NSLayoutConstraint代码篇
本文转载至 http://www.cnblogs.com/madpanda/p/4311980.html AutoLayout是从IOS 6开始苹果引入来取代autoresizing的新的布局技术,该 ...
最新文章
- 快评 美国软件开发杂志的最新jolt大奖!
- 沉浸式技术immersive technology
- b插到元素a之前python_python之路_前端基础之jQuery入门3
- 十一、Powerbi函数篇
- 最新cocoaPods安装、升级、卸载及删除库命令(持续更新)
- 管理表空间和数据文件——维护表空间——设置默认表空间和删除表空间和删除数据文件盒临时文件...
- 日历签到 java_我的Android案例―签到日历
- 带父节点的平衡二叉树_Python算法系列—深度优先遍历算法【二叉树】
- php如何打开格式_php的文件格式是什么?如何打开php文件[graphic]
- 四层协议和七层协议详解
- dell进入u盘启动模式_Dell戴尔笔记本bios设置u盘启动详细步骤
- vue中使用svg矢量图
- CentOS更改语言两种方式
- 利用python实现外星人入侵大战小游戏(带源代码)
- scrapy shell 调试报错TypeError: module.__init__() takes at most 2 arguments (3 g iven)
- 【输入法】搜狗输入法中英文切换
- 【JavaIO流之实战演练】
- 【MATLAB】函数定义与反函数
- jQuery结合Ajax
- 学生管理系统JAVA-面向过程