在Kotlin中创建未绑定的服务

时间:2016-07-20 23:23:40

标签: android android-service kotlin android-service-binding

我试图在kotlin中创建一个简单的未绑定服务,但我无法做到。当我在Java中覆盖onBind()方法时,我可以返回null,但在kotlin中它表示我只允许返回IBinder而不是IBinder?,这意味着它不能null。除了将MyService类重写为Java之外,有什么想法可以解决这个问题吗?

[求助]谢谢你们,伙计们!我可以将IBinder改为IBinder?。它有效!!

1 个答案:

答案 0 :(得分:17)

正如Enrico所提到的,您可以将IBinder的类型更改为IBinder?,它仍将与界面匹配。

以下是一个例子:

override fun onBind(intent: Intent): IBinder? {
   return null
}

通常,使用Android Studio覆盖Android方法时要小心。当系统实际上可以返回空引用时,它会生成非null类型。它会导致你真正不期望的运行时kotlin异常。

如果我没记错的话,在重载Fragment类和与View创建相关的方法时,我遇到了很多问题。