警匪片:运行后台服务(一)- 生命周期
来源:百度文库 编辑:九乡新闻网 时间:2024/05/06 06:32:36
运行后台服务(一)- 生命周期
作为一款多任务操作系统,如果不能运行后台服务,显然说不过去,Android 当然提供了运行后台程序的方法。而且非常简单易用,只不过有一些小问题需要注意,这个主题分为两部分,第一部分是如何实现一个Service以及他的生命周期,第二部分是对于一个个后台服务应该注意的事项。我们开始吧!
创建服务类
所谓的服务,在Android里被称做 Service,只要继承 android.app.Service 这个抽象类,并且实现其中几个方法就可以了。
view plaincopy to clipboardprint?
public class RoidingService extends android.app.Service {}
public class RoidingService extends android.app.Service {}
里边必须实现的一个方法是 onBind(Intent intent) ,他具体是做什么的我们下边讲。还有两个重要的回调函数需要覆盖,onCreate() 和 onDestroy()。跟 Actitivty 类似,在创建和销毁 Service 时回调这两个函数,达到初始化或退出前保存状态。
服务的生命周期
有了 Service 类我们如何启动他呢,有两种方法:
Context.startService() Context.bindService()
在同一个应用任何地方调用 startService() 方法就能启动 Service 了,然后系统会回调 Service 类的 onCreate() 以及 onStart() 方法。这样启动的 Service 会一直运行在后台,直到 Context.stopService() 或者 selfStop() 方法被调用。另外如果一个 Service 已经被启动,其他代码再试图调用 startService() 方法,是不会执行 onCreate() 的,但会重新执行一次 onStart() 。
另外一种 bindService() 方法的意思是,把这个 Service 和调用 Service 的客户类绑起来,如果调用这个客户类被销毁,Service 也会被销毁。用这个方法的一个好处是,bindService() 方法执行后 Service 会回调上边提到的 onBind() 方发,你可以从这里返回一个实现了 IBind 接口的类,在客户端操作这个类就能和这个服务通信了,比如得到 Service 运行的状态或其他操作。如果 Service 还没有运行,使用这个方法启动 Service 就会 onCreate() 方法而不会调用 onStart()。
作为一款多任务操作系统,如果不能运行后台服务,显然说不过去,Android 当然提供了运行后台程序的方法。而且非常简单易用,只不过有一些小问题需要注意,这个主题分为两部分,第一部分是如何实现一个Service以及他的生命周期,第二部分是对于一个个后台服务应该注意的事项。我们开始吧!
创建服务类
所谓的服务,在Android里被称做 Service,只要继承 android.app.Service 这个抽象类,并且实现其中几个方法就可以了。
view plaincopy to clipboardprint?
public class RoidingService extends android.app.Service {}
public class RoidingService extends android.app.Service {}
里边必须实现的一个方法是 onBind(Intent intent) ,他具体是做什么的我们下边讲。还有两个重要的回调函数需要覆盖,onCreate() 和 onDestroy()。跟 Actitivty 类似,在创建和销毁 Service 时回调这两个函数,达到初始化或退出前保存状态。
服务的生命周期
有了 Service 类我们如何启动他呢,有两种方法:
Context.startService() Context.bindService()
在同一个应用任何地方调用 startService() 方法就能启动 Service 了,然后系统会回调 Service 类的 onCreate() 以及 onStart() 方法。这样启动的 Service 会一直运行在后台,直到 Context.stopService() 或者 selfStop() 方法被调用。另外如果一个 Service 已经被启动,其他代码再试图调用 startService() 方法,是不会执行 onCreate() 的,但会重新执行一次 onStart() 。
另外一种 bindService() 方法的意思是,把这个 Service 和调用 Service 的客户类绑起来,如果调用这个客户类被销毁,Service 也会被销毁。用这个方法的一个好处是,bindService() 方法执行后 Service 会回调上边提到的 onBind() 方发,你可以从这里返回一个实现了 IBind 接口的类,在客户端操作这个类就能和这个服务通信了,比如得到 Service 运行的状态或其他操作。如果 Service 还没有运行,使用这个方法启动 Service 就会 onCreate() 方法而不会调用 onStart()。
运行后台服务(一)- 生命周期
运行后台服务(二)- 使用技巧
揭秘个股运行的生命周期(转)
Android原理 不需要关闭后台运行程序
生命周期
从广州亚运看媒体运行服务(褚亚玲)
Windows 7----音频服务未运行(解决方法)
oracle如何查看后台正在运行着的sql语句
使用nohup让程序在远程主机后台运行
CFB锅炉运行原理(一)
Windows 2008 R2 远程桌面服务(一)安装远程桌面服务
想XP系统运行更畅快?请关闭垃圾服务(超详细)
想XP系统运行更畅快?请关闭垃圾服务(超详细)
打印后台程序服务没有运行的解决办法
【酷派F600安装软件和后台运行的详细步骤
S40第五版手机后台运行操作详细教程更多+QQ329989280
猎头服务合同(一)
餐厅服务标准一
拍春晚后台,看到了一席不该看的东西
想XP系统运行更畅快?请关闭垃圾服务(超详细) - 理睬的日志 - 网易博客
《税法一》税法的运行
讨论:现代图书馆的服务理念与服务方式(一)
优质护理服务示范病房考核标准(一)
关闭服务让XP运行的更顺畅.