Android中直接开线程与使用服务开线程的区别
2013-03-13 10:37
204 查看
Android中直接开线程与使用服务(Service)开线程两种办法都可以执行长时间任务,它们的区别是什么呢?什么时候使用直接开线程,又什么时候启动服务后,再服务中开线程呢?
一个service是一个在用户不与你的应用交互时依然可以运行于后台的简单组件.所以,只有你需要这样做时才创建一个service.如果你需要执行的工作不在主线程中,但是只有用户在与你的应用交互时才进行,那么你可能应该创建一个新的线程而不是一个service.例如,如果你想播放一些音乐,但是只在你的activity运行时才播放,你应该在onCreate()中创建一个线程,在onStart()运行这个线程,然后在onStop()中停止它.也可以考虑使用AsyncTask或HandlerThread,来代替传统的线程类.
举例:
项目1)点按钮开服务,服务中开线程播放map3
项目2)点按钮开线程播放mp3
项目3)能通过开辟项目1中的服务播放mp3(服务可以被其它项目直接启动)
项目3)不能通过开辟项目2中的线程播放mp3(线程不能被其它项目直接启动)
一个service是一个在用户不与你的应用交互时依然可以运行于后台的简单组件.所以,只有你需要这样做时才创建一个service.如果你需要执行的工作不在主线程中,但是只有用户在与你的应用交互时才进行,那么你可能应该创建一个新的线程而不是一个service.例如,如果你想播放一些音乐,但是只在你的activity运行时才播放,你应该在onCreate()中创建一个线程,在onStart()运行这个线程,然后在onStop()中停止它.也可以考虑使用AsyncTask或HandlerThread,来代替传统的线程类.
举例:
项目1)点按钮开服务,服务中开线程播放map3
项目2)点按钮开线程播放mp3
项目3)能通过开辟项目1中的服务播放mp3(服务可以被其它项目直接启动)
项目3)不能通过开辟项目2中的线程播放mp3(线程不能被其它项目直接启动)
相关文章推荐
- Android中直接开线程与使用服务开线程的区别
- android的线程(Thread)和服务(Service)的区别
- Android中使用Thread线程与AsyncTask异步任务的区别
- Android的线程(Thread)和服务(Service)的区别
- Android的线程(Thread)和服务(Service)的区别
- android的线程(Thread)和服务(Service)的区别
- Android getText(@string/a)和直接使用字符的区别
- android的线程(Thread)和服务(Service)的区别
- Android后台进程与前台线程间的区别使用
- Android后台进程与前台线程间的区别使用
- Android 服务与线程 的区别
- .Android用Handle调用线程与用Thread直接创建线程的区别?
- android的线程(Thread)和服务(Service)的区别
- Android Handle调用线程和Thread直接创建线程的区别小结
- Android中Handler的使用方法——在子线程中更新界面
- Android 使用【AIDL】调用外部服务
- 防火墙与路由器的区别以及何时直接使用防火墙接入外网
- UniqueService(解决事务时获取服务地址后直接使用)
- Android笔记:invalidate()和postInvalidate() 的区别及使用
- 【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法