Android Service---创建一个被启动类型的服务
2012-05-11 10:40
387 查看
一个启动类型的服务是另一个组件通过调用startService()方法,产生一个调用服务的onStartCommand()方法而启动的服务。
当一个服务被启动时,它有一个独立与启动它的组件的生命周期,并且这个服务能够无限期的在后台运行,即使启动它的组件被销毁了。因此这个服务应该在工作结束时通过调用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
当一个服务被启动时,它有一个独立与启动它的组件的生命周期,并且这个服务能够无限期的在后台运行,即使启动它的组件被销毁了。因此这个服务应该在工作结束时通过调用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与广播broadcastreceiver创建开机启动服务
- Qt on Android 启动一个Android的服务(Service)
- Android应用组件之服务(Service)---创建启动服务1
- Android Service---创建绑定类型服务
- android 实现一个app启动另一个app的service服务
- android的服务进程Service的创建及启动
- 在android的service中启动一个通知,点击通知无法启动activity,报一个SecurityException异常
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service
- Android Service 详解二:创建一个service
- Android 让一个Service开机自动启动
- Android 在服务Service中创建Dialog对话框
- Android怎么让一个service开机自动启动
- Android系统在新进程中启动自定义服务过程(startService)的原理分析
- 【原创】把 Nginx 创建为 Windows 的一个服务,关联PHP服务一起启动
- Android窗口管理服务WindowManagerService显示Activity组件的启动窗口(Starting Window)的过程分析
- Android系统在新进程中启动自定义服务过程(startService)的原理分析
- Android下新增JNI过程中启动新增系统服务(addService)遇安全错误问题
- Android-Service (基本知识,生命周期,实例-startService 启动的服务音乐播放器后台服务播放)