杭州

点击搜索

发布

杭州腾科-{技术文献}AndroidService

区域:
杭州 > 西湖 > 翠苑
类别:
IT认证培训
地址:
杭州市西湖区翠柏路7号电子商务产业园5楼518室
文档告诉我们,一个service可以同时start并且bind,在这样的情况,系统会一直保持service的运行状态。如果service已经start了或者BIND_AUTO
  _CREATE标志被设置。如果没有一个条件满足,那么系统将会调用onDestory方法来终止service。所有的清理工作(终止线程,反注册接收器)都在onDestory中完成。
  而启动service,根据onStartCommand的返回值不同,有两个附加的模式。
  分析onStartCommand方法参数的作用和返回值的作用:
  1、根据这个方法的返回值不同可以有两种启动模式START_NOT_STICKY,START_STICKY(当进程被杀死的时候,是否重新启动。如果是参数START_REDELIVER_INTENT表示当服务所在进程被杀死后,重新启动,并且重新传递Intent内容,其它两个参数不会重新传递intent,都为null)
  2、返回START_REDELIVER_INTENT的时候,不论启动多少次,当重新启动的时候,也会启动多少次。
  3、是当前服务的标记
  4、第三个参数startId表示当前启动的Service的次数
  Ø 拥有service的进程具有较高的优先级
  文档告诉我们,Android系统会尽量保持拥有service的进程运行,只要在该service已经被启动(start)或者客户端连接(bindService)到它。当内存不足时,需要保持,拥有service的进程具有较高的优先级。
  A.
如果service正在调用onCreate,onStartCommand或者onDestory方法,那么用于当前service的进程则变为前台进程以避免被killed。
  B.
如果当前service已经被启动(start),拥有它的进程则比那些用户可见的进程优先级低一些,但是比那些不可见的进程更重要,这就意味着service一般不会被killed.
  C. 如果客户端已经连接到service
(bindService),那么拥有Service的进程则拥有高的优先级,可以认为service是可见的。
  D. 如果service可以使用startForeground(int,
Notification)方法来将service设置为前台状态,那么系统就认为是对用户可见的,并不会在内存不足时killed。
  如果有其他的应用组件作为Service,Activity等运行在相同的进程中,那么将会增加该进程的重要性
查看更多杭州电脑/网络信息

免责声明:此信息系发布者(UID:185908)自行发布,本站是服务平台,仅提供信息存储空间服务,该信息内容的真实性及合法性由该发布者完全负责。

© lieju.com 联系我们