Service确实是运行在主线程里的,也就是说如果你在Service里编写了非常耗时的代码,程序必定有问题。

Android的后台就是指,它的运行是完全不依赖UI的。即使Activity被销毁,或者程序被关闭,只要进程还在,Service就可以继续运行。

一个进程里面,主线程有Activity+Service,比如有时我们会手动关掉Activity,带Service还在后台运行着,跟服务器连接。

耗时的任务只要在Service再创建一个进程就好了

为什么不用Thread。

1、Activity很难对Thread进行控制,当Activity被销毁之后,就没有任何其它的办法可以再重新获取到之前创建的子线程的实例。

2、如果没有在Activity的OnDestory里面设置stopThread=true,那Activity销毁之后,线程还在,控制不了。

3、在一个Activity中创建的子线程,另一个Activity无法对其进行操作。

4、所有的Activity都可以与Service进行关联。

5、即使Activity被销毁了,之后只要重新与Service建立关联,就又能够获取到原有的Service中Binder的实例。

6、使用Service来处理后台任务,Activity就可以放心地finish,完全不需要担心无法对后台任务进行控制的情况。

所以这种定时要和服务器交互的情况下,是不是服务更好一些?

最新文章

  1. Waiting Processed Cancelable ShowDialog (Release 2)
  2. javascript:Bing Maps AJAX Control, Version 7.0
  3. EditText 控件
  4. IOS把文件保存进沙盒目录
  5. 这五个题你懂了javascript你就入门了
  6. 浅谈Javase内存流程图
  7. wget下载网站整个目录
  8. 针对portmap 的DDOS攻击
  9. POJ 1094 Sorting It All Out (拓扑排序) - from lanshui_Yang
  10. AJAX - 类型“System.Web.UI.UpdatePanel”不具有名为“FileUpload”的公共属性。
  11. HDU 1248 冰封王座(dp)
  12. VR全景项目领导者,VR全景智慧城市
  13. Excel 导入 Mysql
  14. python+requests库,接口自动化
  15. Postman 安装及使用入门教程 (谷歌浏览器插件版)
  16. php三级联动(html,php两个页面)
  17. nodeJs的Buffer操作
  18. 算法训练 Lift and Throw
  19. Alpha阶段敏捷冲刺⑥
  20. mysql中给表添加字段

热门文章

  1. python pass关键字神奇吗
  2. .NET 使用 XPath 来读写 XML 文件
  3. asp.net如何判断服务器上的目录或文件是否存在
  4. rollupjs 基本试用
  5. cocos2dx调度器(scheduler)
  6. [转]使用tcpdump抓取HTTP包
  7. bzoj 1069 [SCOI2007]最大土地面积——旋转卡壳
  8. 在ng中的select的使用方法的讲解
  9. xshell连接kali
  10. 使用GDI+保存带Alpha通道的图像