Android Service---创建一个被启动类型的服务
来源:互联网 发布:网络电影发行协议 编辑:程序博客网 时间:2024/05/22 06:26
当一个服务被启动时,它有一个独立与启动它的组件的生命周期,并且这个服务能够无限期的在后台运行,即使启动它的组件被销毁了。因此这个服务应该在工作结束时通过调用stopSelf()方法来终止自己,或者另一个组件通过调用stopService()方法也能终止这个服务。
像Activity这样的应用程序组件能够通过调用startService()方法来启动服务,并且给指定的服务传递一个Intent对象,同时包含一些服务所使用的数据。服务在onStartCommand()方法中接受这个Intent对象。
例如,假设一个Activity需要把一些数据保存到在线数据库中。这个Activity就能启动一个服务,并且把要保存的数据通过一个Intent对象传递给startService()方法。这个服务在onStartCommand()方法中接受这个Intent对象,连接到互联网,并且执行数据库事务。当事务结束,这个服务就自己终止并销毁。
警告:服务运行在与声明它的应用程序相同的进程中,并且是在应用程序的主线程中。默认情况下,如果你的服务要执行密集或阻塞操作,而用户又要跟同一个应用程序的一个Activity进行交互,那么这个服务就会降低Activity的性能。要避免影响应用程序的性能,你应该在服务的内部启动一个新的线程。
通常,你能够继承两个类来创建被启动类型的服务:
Service
这是所有服务的基类。当你继承这个类时,重要的是你要给所有的服务工作创建一个新的线程,因为服务要使用你的应用程序的主线程,默认情况可能降低应用程序正在运行的Activity的性能。
IntentService
这是一个Service类的子类,它使用工作线程来依次处理所有的启动请求,如果你不想要服务同时处理多个请求,那么这是最好的选择。需要你做的所有工作就是实现onHandleIntent()方法,它接受每个启动请求的Intent对象,以便完成后台工作。
注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。
如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar
- Android Service---创建一个被启动类型的服务
- Android Service---创建一个被启动类型的服务
- android的服务进程Service的创建及启动
- Qt on Android 启动一个Android的服务(Service)
- Android Service---创建绑定类型服务
- Android Service---创建绑定类型服务
- android 实现一个app启动另一个app的service服务
- 创建一个开机自启动的Android系统服务
- Android Service---启动服务
- Android Service---启动服务
- Android 02 Started Service--之被启动的服务
- android 开机启动服务service的开发
- Android 绑定类型服务---创建绑定类型的服务
- Android 绑定类型服务---创建绑定类型的服务
- Android: Service(启动服务)
- Android service 之启动服务
- 能够被service启动的服务
- android用服务service与广播broadcastreceiver创建开机启动服务
- JavaScript Query String URL Parameters Tutorial
- 黑马程序员-jQuery Select操作大集合
- Android Service---在清单中声明一个服务
- C语言翻转字符串函数strrev ( ) 的库函数源代码
- 微软未公开存储过程及有用的函数
- Android Service---创建一个被启动类型的服务
- 使用CriticalSection进行线程同步
- CRF++模型文件格式分析
- Cocos2d-X精灵教程:第一部分
- Android Service---继承IntentService类
- 遍历lucene索引库
- UITextView 替换UILable显示链接文本
- C++中使用Mongo执行count和distinct运算
- 同步启用博客园-博客