Service模板代码
- How To Use
注册
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sq.net">
<application >
<service android:name=".NetService"/>
</application>
</manifest>
主类
class NetService : Service() {
inner class CustomBinder : Binder() {
val service: NetService
get() = this@NetService
}
//region #生命周期
override fun onCreate() {
super.onCreate()
//逻辑
//init()
}
override fun onBind(intent: Intent?): IBinder = CustomBinder()
override fun onDestroy() {
...
super.onDestroy()
}
//endregion
//region #初始化
...
//endregion
//一些回调放这里
public interface IGetResultCallback {
void setResult(String code);
}
private IGetResultCallback iGetResultCallback;
public void setIGetResultCallback(IGetResultCallback iGetResultCallback) {
this.iGetResultCallback = iGetResultCallback;
}
}
实现
private var mIntent: Intent? = null
private var binder: NetService.CustomBinder? = null
private fun initService() {
mIntent = Intent(this, NetService::class.java)
bindService(mIntent, serviceConnection, BIND_AUTO_CREATE)
}
private val serviceConnectionCard = object : ServiceConnection {
override fun onServiceDisconnected(p0: ComponentName?) {}
override fun onServiceConnected(name: ComponentName?, service: IBinder?) {
binderCard = service as CardService.CustomBinder
val mService = binderCard!!.service
mService.setIGetResultCallback {
it?.let {
//逻辑
}
}
}
}