两种启动方法:
startService
bindService
第一种无法返回数据,而第二种可以返回数据。
第二种bindService
需要注意:
bindService(Intent intent, ServiceConnection conn, int flags)
-
intent
指定服务类service显示和隐式需要注意 显示:Intent(this.service.class) 隐式:需要设置filer action="xxxxx" Intent("Action name") intent.setPackage("packgenem")
-
conn
连接对象,Service有些类似于服务器(Service)和客户端(Activity),bindService前先创建此对象,需要实现它的两个方法onServiceConnected
和onServiceDisconnected
,前一个方法是当bindService时返回了IBinder对象自动执行,后一个是对service连接意外丢失时,系统自动执行。 -
flags
创建Service模式一般选择Service.BIND_AUTO_CREATE
需要注意的是bindService和返会Binder对象是异步,并不是bindService后就会马上返回此对象,一般bindService都是放在Activity的onCreate中,然后需要的地方再使用Binder对象(比如点击了某按钮),在onDestroy方法中unbindService。
Service两种启动方法的生命周期也不同