Android service与thread的选择
来源:互联网 发布:mac强制卸载软件 编辑:程序博客网 时间:2024/06/03 15:59
android SDK:
service运行在宿主进程中的主线程中(即UI线程),不创建自己的线程,不运行在一个单独的进程中(除非你专门指定)。
因此,如果你的service要做的工作很占CPU或者会有阻塞(例如mp3播放、网络任务),最好在service中创建一个新的thread来做这些工作,这样主线程能够专注于activity的用户交互,从而减少ANR(程序无响应)异常的发生。
到底该用service还是用thread?
如果任务只在应用程序与用户有交互的情况下产生,并且任务很占时间或者会引起阻塞,则另起thread或者HandlerThread。
如果在应用程序与用户无交互的情况下仍需处理任务,那么用service,因为service是在后台运行的,同时仍要注意是否需要在service中另开thread。
Context.startService()方式启动的service会先后调用onCreate()、onStart()方法,这种方式启动的service不会与调用者有任何关系,即使调用者退出了,service仍然继续运行。
Context.bindService()方式启动的service会先后调用onCreate()、onBind()方法,调用者与服务绑定在一起,调用者一旦退出,服务立即终止。
- Android service与thread的选择
- Android中Service与Thread的区别
- Android中Service与Thread的区别
- Android中Service与Thread的区别
- android中Service与Thread 的区别
- Android中Service与Thread的区别
- Android中Service与Thread的区别
- Android中Service与Thread的区别
- Android中的Service 与 Thread 的区别
- 【Android】Thread与Service的差异
- Android中的Service 与 Thread 的区别
- Android—Thread与Service的区别
- Android中的Service 与 Thread 的区别?
- Android中Service与Thread的区别
- Android中的Service 与 Thread 的区别
- Android中Service与Thread的关系
- Android中的Service 与 Thread 的区别
- Android中的Service 与 Thread 的区别
- python 随机数
- OGRE基础教程八 Multiple and Dual SceneManagers
- 清除Firefox下Flash(swf文件)缓存
- 改变CXF WEBSERVICE 日志输出方式
- android 修改权限无法开机解决方案 (没有删除数据的前提下)
- Android service与thread的选择
- 安装postgis2.0.1出错configure error: could not find gdal
- 第一章:JavaScript基础---(三)转义字符
- OGRE中级教程一 Animation, Walking Between Points, and Basic Quaternions
- OGRE中级教程二 RaySceneQueries and Basic Mouse Usage
- linux下安装cmake
- 关于typedef的用法总结
- windows7资源管理器无响应的解决方案
- 元芳,这个Bug你怎么看