Service学习启动方式之startService

Service学习启动方式之startService

编程入门hacker2018-01-16 5:14:199442A+A-

Service定义及用处:

A service is an application component that can perform long-running operations in the background and does not provide a user interface。

一般service用于实行某些用时使用,或是控制台实行不出示客户互动页面的使用,比如:下載、播放音乐。

Service生命期 :

Android Service的生命期不一定像Activity那麼繁杂,它只承继了onCreate(),onStart(),onDestroy()3个方式,当你初次起动Service时,依次启用了onCreate(),onStart()这2个方式,当终止Service时,则实行onDestroy()方式,这儿必须留意的是,假如Service早已起动了,当你再度起动Service时,不容易在实行onCreate()方式,只是立即实行onStart()方式,实际的能看下边的案例。

Service与Activity通讯:

Service后web端统计资料最后還是要展现在web开发Activity之中的,由于起动Service时,体系会再次打开1个新的程序,这就牵涉到不一样进程间通信的难题了(AIDL)这每节我未作过多叙述,当你想获得起动的Service案例时,人们能够采用bindService和onBindService方式,他们各自实行了Service中IBinder()和onUnbind()方式。

这儿要谈及一些:承继service的子类在重写service的方式中,除开1个onStart()方式以外,有个onStartCommand()方式,相关onStartCommand()方式略微作点介紹:

Android设计规划的流程中,每一次启用startService(Intent)的当时,都是启用该Service成员变量的onStartCommand(Intent,int,int)方式,随后在onStartCommand方式中做某些解决。随后人们留意到这一涵数有个int的返回值,这篇文章也是简易地讲下int返回值的功效。

从Android管方word表格中,人们了解onStartCommand有4种返回值:

 

START_STICKY:假如service程序被kill掉,保存service的情况为开使情况,但不保存寄送的intent成员变量。接着体系会试着再次建立service,因为业务情况为开使情况,因此建立业务后必定会启用onStartCommand(Intent,int,int)方式。假如在此期间没有任何启动命令被传送到service,那麼叁数Intent将为null。

START_NOT_STICKY:“非黏性的”。应用这一返回值时,假如在实行完onStartCommand后,业务被不正常kill掉,体系将会把它置为started情况,体系不容易自动重启该业务,直至startService(Intent intent)方式再度被启用;。

START_REDELIVER_INTENT:重传Intent。应用这一返回值时,假如在实行完onStartCommand后,业务被不正常kill掉,体系会自动重启该业务,并将Intent的值传到。

START_STICKY_COMPATIBILITY:START_STICKY的适配板本,但不确保业务被kill后必须能重新启动。

 

拥有 Service 类人们怎样起动他呢,有二种方式:

 

      • Context.startService() 

      • Context.bindService()

 

 

     1.  在相同运用一切地区启用 startService() 方式就能起动 Service 了,随后体系会回调 Service 类的 onCreate() 及其 onStart() 方式。那样起动的 Service 会始终运作在控制台,直至 Context.stopService() 或是 selfStop() 方式被启用。另一个假如1个 Service 早已被起动,别的编码再尝试启用 startService() 方式,是不容易实行 onCreate() 的,但会再次实行多次 onStart() 。

 

      2. 另一个这种 bindService() 方式的含意是,把这一 Service 和启用 Service 的顾客类绑起来,假如启用这一顾客类被消毁,Service 也会被消毁。用这一方式的1个益处是,bindService() 方式实行后 Service 会回调上面提及的 onBind() 方发,你能从这儿回到1个保持了 IBind 插口的类,在服务端使用这


点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
  • 2条评论
  • 萌懂怀桔2022-05-28 23:44:02
  • 非黏性的”。应用这一返回值时,假如在实行完onStartCommand后,业务被不正常kill掉,体系将会把它置为started情况,体系不容易自动重启该业务,直至startService(Intent intent)方式再度被启用;。
  • 温人青尢2022-05-28 18:02:47
  • vice 类人们怎样起动他呢,有二种方式:       • Context.startService()       • Context.bindService()  

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理