当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > Service的使用

Service的使用 时间:2018-09-27      来源:未知

一、概念

服务是一个长生命周期的、没有用户界面的程序,一般服务是在后台做耗时操作,所以可以使用服务来开发如监控类的程序。

二、服务的创建、注册、启动

1、服务的创建

开发Service组件与Activity一样,需要写一个子类继承Service,并重写相关的方法,如:

public class MyService extends Service {...}

2、服务的注册

AndroidMenifest.xml文件中注册Service:
<service android:name="com.example.test.Service"></service>  

或者:
<service android:name="com.example.test.MyService">           
                    <intent-filter >                   
                           <action android:name="MyService"/>            
                     </intent-filter>    
                </service>

3、服务的启动与停止

Intent intent = new Intent();

//intent.setClass(MainActivity.this, MyService.class);

intent.setAction("com.fs.service.MyService");

(1)启动/停止服务:使用Context.startService() 方法启动服务,使用Context.stopService()方法停止服务。

(2)绑定/解绑服务:使用Context.bindService()方法绑定服务,使用 Context.unbindService()方法解绑服务。

4、启动服务与绑定服务的区别

服务不能自己运行,需要通过调 用 Context.startService() 或Context.bindService() 方法启动服务。这两个方法都可以启动Service,但是它们的使用场合有所不同。

(1)使用 startService() 方法启用服务,访问者与服务之间没有关联,即使访问者退出了,服务仍然运行。

(2)使用 bindService() 方法启用服务,访问者与服务绑定在了一起,访问者一旦退出,服务也就终止。

(3)采用 Context.startService() 方法启动服务,只能调用 Context.stopService() 方法结束服务,服务结束时会调用 onDestroy() 方法。【注意:服务的生命周期方法都是在主线程执行,所以不能直接在服务里面做耗时操作做,如果需要做耗时操作,应该在服务里面开启子线程。】

(4)通过 startService() 和 stopService( ) 启动和关闭服务。适用于服务和访问者之间没有交互的情况。

(5)如果服务和访问者之间需要方法调用或者传递参数,则需要使用 bindService() 和 unbindService() 方法绑定和解绑服务。

三、服务的生命周期

1、启动、绑定服务的生命周期

2、混合启动绑定服务的生命周期

上一篇:HTML-CSS清除浮动大全共8种方法

下一篇:SQLite3在ARM Cortex-A9开发板上的移植

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部