永发信息网

android中的service到底起什么作用 博客

答案:1  悬赏:80  手机版
解决时间 2021-03-27 07:16
android中的service到底起什么作用 博客
最佳答案
Service 是android的一种机制,当它运行的时候如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。如:onCreate,onStart 这些函数在被系统调用的时候都是在主进程的 main 线程上运行的。如果是Remote Service,那么对应的 Service 则是运行在独立进程的 main 线程上。因此请不要把 Service 理解成线程,它跟线程半毛钱的关系都没有!

  既然这样,那么我们为什么要用 Service 呢?其实这跟 android 的系统机制有关,我们先拿 Thread 来说。Thread 的运行是独立于 Activity 的,也就是说当一个 Activity 被 finish 之后,如果你没有主动停止 Thread 或者 Thread 里的 run 方法没有执行完毕的话,Thread 也会一直执行。因此这里会出现一个问题:当 Activity 被 finish 之后,你不再持有该 Thread 的引用。另一方面,你没有办法在不同的 Activity 中对同一 Thread 进行控制。
  
  举个例子:如果你的 Thread 需要不停地隔一段时间就要连接服务器做某种同步的话,该 Thread 需要在 Activity 没有start的时候也在运行。这个时候当你 start 一个 Activity 就没有办法在该 Activity 里面控制之前创建的 Thread。因此你便需要创建并启动一个 Service ,在 Service 里面创建、运行并控制该 Thread,这样便解决了该问题(因为任何 Activity 都可以控制同一 Service,而系统也只会创建一个对应 Service 的实例)。
  
  因此你可以把 Service 想象成一种消息服务,而你可以在任何有 Context 的地方调用 Context.startService、Context.stopService、Context.bindService,Context.unbindService,来控制它,你也可以在 Service 里注册 BroadcastReceiver,在其他地方通过发送 broadcast 来控制它,当然这些都是 Thread 做不到的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
以太坊交易平台有哪些,最好的是币龙网吗?
与&相近的符号
java五子棋思路求教
松下数码相机怎么用数据线充电
乒乓球胶皮563是什么特性?
手游版绝地求生有多少电脑人
请越南语达人将下面的越南语译为中文,谢谢!
bim技术进行碰撞分析是什么意思
Jamieson加拿大增美神长效天然维他命C是怎么
沈阳陈国强近况
表达冬天愁的句子
食字查字典应该查什么部首
我今天从10页读到第19页,我今天读了多少页?为
怎么把拍摄的慢动作还原正常动作
何谓液压传动?其基本工作原理是什么
推荐资讯
黔西南有什么地方比较好玩,风景好的优
单选题LiLeioftenloves________thisgame.A.
331除以3等于多少,竖式
3月开什么花
电脑上装双硬盘好还是单硬盘好?
安溪压茶机遭禁,茶农很受伤泉州晚报
新手开车转弯速度应该在10迈左右吗
淘宝店没开起来,1000元的保证金哪里去了?怎
用cure 造句
翻译女神张京:如何成为一名出色的外交翻译
"蘧伯玉年五十而知四十九年非"什么意思?
最新的word中的lamda怎么打
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?