Android——本地服务基础(一)

                 

      本地服务用于应用程序内部,可以实现应用程序自己的一些耗时任务,比如查询升级信息,网络传输,或者在一些场合需要在后台执行,比如播放音乐,并不占用应用程序比如activity所属的线程,而是单开线程后台执行,这样用户体验比较好。

一,本地服务的启动方式

          1,Context.bindService

                           

1,绑定时,bindService——onCreate()——onBind()

bindService(Intent intent,ServiceConnection conn,int flags)

参数说明:

1,intent:Intent对象,需要定义指向服务器

2,conn:ServiceConnection接口对象,创建该对象要实现它的onServiceConnected(系统调用该方法来传递由Service的onBind方法返回的IBinder)和onServiceDisconnected(对Service的连接意外丢失,比如当Service崩溃或者被杀时,系统会调用该方法)来判断连接成功或者是断开连接

3,bindService之后会自动调用ServiceConnection接口里面的onServiceConnected方法;但是如果执行unbindService方法之后不会自动调用这个接口里面的onServiceDisconnected方法,也就是说执行unbindService只是告诉系统已经和这个服务没有关系了,同时在系统内存不足的时候可以优先杀死这个服务。

 

注意:Service和需要绑定的Activity在一个包内,否则将无法调用ServiceConnection接口中的上述方法。

 

    2,解除绑定时,unbindService——onUbind——onDestory

 

如果调用者(例如Activity)直接退出,Service由于与调用者绑定在一起,则Service会随着调用者一同停止。

用Context.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate方法,接着调用onBind方法。这个时候调用者和服务绑定在一起,调用者退出了,系统就会调用服务的onUnbind方法,接着调用onDestroy方法。

 

如果调用bindService方法前服务已经被绑定,多次调用context.bindService方法并不会导致多次创建服务及绑定。

如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService方法,调用该方法也会导致系统调用服务的onUnbind——onDestroy方法

    2,Context.startService

                                   

          1,启动时,startService——onCreate——onStart

          2,停止时,stopService——onDestroy

 

     此时如果调用者直接退出而没有停止Service,则Service会一直在后台运行。

          Context.startService方法启动服务,在Service未被创建的时候,会先调用Service的onCreate方法,然后再调用OnStart方法.

     采用StartService启动的服务,只能调用stopService方法结束服务,服务结束时候会调用onDestroy方法

二,生命周期

 

                      

Service生命周期一般有两种运行模式。

 

1,通过Context.startService方法开始,以Context.stopService方法结束,

可以通过Service.stopSelf或者Service.stopSelfResult方法停止自身。stopService只需调用一次便可以将服务停止。

 

2,通过接口被外部程序调用。外部程序建立一个到Service的连接,通过这个连接来操作Service.创建连接开始于Context.bindService,结束于Context.unbindService多个客户端绑定到同一个Service。

                     

时间: 2024-11-05 12:08:10

Android——本地服务基础(一)的相关文章

微服务基础

微服务基础篇 1: service consumer -> Proxy Server ->Load Balance -> Service Discovery -> Target Service 2: Broser curl Other -> Zuul -> Ribbon -> Euraka -> Restful API zuul: 是边缘服务,用来提供动态路由,监控,授权,安全,调度等功能,将权限控制等一些业务逻辑抽离出来,单独放到Zuul里,使得服务组件更

网易新闻4.0:打造专属阅读节奏 乐享本地服务

中介交易 SEO诊断 淘宝客 云主机 技术大厅 2014年8月7日下午,网易在北京召开发布会,正式推出网易新闻客户端4.0版本.4.0新版以"打造专属阅读节奏.乐享本地生活服务.全面升级跟贴互动.化繁为简全新视界"为四大核心革新点,对产品功能进行全面升级,在生活服务和商业化方面进行了全新的尝试.网易创始人.CEO丁磊出席发布会并致辞. 网易创始人兼CEO丁磊致辞 根据CNNIC最新数据显示,高达74.2%的手机网民阅读移动新闻,目前这一比例仍在稳步攀升.全民移动时代里,网易新闻作为最受

Android Service服务详细介绍及使用总结_Android

Android Service服务详解 一.Service简介        Service是android 系统中的四大组件之一(Activity.Service.BroadcastReceiver. ContentProvider),它跟Activity的级别差不多,但不能页面显示只能后台运行,并且可以和其他组件进行交互.service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理

本地服务商城逆势生长 团购仅靠低价恐成鸡肋

虽然团购去年全年吸引3亿人抱团消费,为用户节省了190多亿元,然而该模式出现的问题却屡见不鲜.http://www.aliyun.com/zixun/aggregation/32834.html">业内人士指出,仅靠低折扣带来短期客流的团购,已逐渐成为鸡肋,而在团购基础上的平台类商城千品网等模式弥补了团购的短板,商家可长时间.自主经营的本地服务商城使O2O(让互联网成为线下交易的前台 )模式发挥了长尾效应. 团购火爆中暗藏弊端 "团购在帮助商家提高翻台率的表象下, 其实伤害了他们

盛大游戏前CEO谭群钊重出江湖:投资布局本地服务电商

去年某个夏日,谭群钊发出了一封辞职信给陈天桥,后者并无多言迅速批准.就这样,在盛大供职十三年,历任盛大总裁.盛大游戏董事长兼CEO的盛大创始人及二号人物,如此简单地完成了一次别离.(同年底另一盛大创始人陈大年也选择离开). 离职后几个月的时间里,谭群钊的微博和微信上分享最多的,是他陪家人各处游历的照片.年纪尚轻却准备搭上退休专列?并非如此.此间新浪科技与谭群钊两次见面,第一次他说自己还在玩,而第二次他已经做好准备重出江湖. 从老师到老板 1996年,四川籍湖北人谭群钊从上海华东科技大学本科毕业,

阿里云将推出可视频的“云聊”本地服务被看好

近日,有媒体报道称阿里云OS将推出可视频通话的"云聊"服务,据悉其功能类似于苹果的Facetime.对此阿里云方面表示有多项本地服务在研发中. 在18日播出的中央电视台<经济半小时>中,央视记者以中国互联网产业趋势为题,采访了包括阿里云.华为.腾讯等在内的多家企业.其中在涉及阿里云时,重点介绍了其正在内测的新服务--云聊. "只要手机能够上网,那么互相连通的两方就可以进行视频聊天,此外,云聊还支持相关的一些服务,比如说文字聊天.图片.表情."受访的阿里云

Android Service服务详细介绍及使用总结

Android Service服务详解 一.Service简介 Service是android 系统中的四大组件之一(Activity.Service.BroadcastReceiver. ContentProvider),它跟Activity的级别差不多,但不能页面显示只能后台运行,并且可以和其他组件进行交互.service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变

O2O本地服务市场,该怎么玩?

百度是中国最大的搜索引擎,58已成为中国最大的分类信息平台,在移动端还有些其他的生活服务信息平台吗?这也让笔者产生了想一探究竟的想法. Online To Offline,线下是传统业务,to可以是线上到线下.也是线下到线上,更是线上和线下的融合,从O2O这个概念提出到现在已经有几年的时间了,如今的O2O已远远不仅仅是线上到线下的概念了,一个C2B和O2O复合模式本地交易平台,网站贴的标签是中国最大的本地需求定制平台.可以认为这是在打造一种生态,一种新的O2O本地服务模式. 放眼整个行业的大环境

Anroid四大组件service之本地服务的示例代码

服务是Android四大组件之一,与Activity一样,代表可执行程序.但Service不像Activity有可操作的用户界面,它是一直在后台运行.用通俗易懂点的话来说: 如果某个应用要在运行时向用户呈现可操作的信息就应该选择Activity,如果不是就选择Service. Service的生命周期如下: Service只会被创建一次,也只会被销毁一次.那么,如何创建本地服务呢? 实现代码如下: package temp.com.androidserivce; import android.a