我试图在kotlin中创建一个简单的未绑定服务,但我做不到.当我在Java中重写onBind()
方法时,我可以返回null
,但在kotlin中,它说我只能返回IBinder
,不能返回IBinder?
,这意味着它不能是null
.除了将MyService类重写为Java之外,还有其他解决方法吗?
[SOLVED] Thank you, guys! I can realy change IBinder
to IBinder?
. It works!!
我试图在kotlin中创建一个简单的未绑定服务,但我做不到.当我在Java中重写onBind()
方法时,我可以返回null
,但在kotlin中,它说我只能返回IBinder
,不能返回IBinder?
,这意味着它不能是null
.除了将MyService类重写为Java之外,还有其他解决方法吗?
[SOLVED] Thank you, guys! I can realy change IBinder
to IBinder?
. It works!!
正如Enrico提到的,您可以将类型IBinder
更改为IBinder?
,它仍将与接口匹配.
下面是一个例子:
override fun onBind(intent: Intent): IBinder? {
return null
}
通常,使用Android Studio覆盖Android方法时要小心.当系统实际上可以返回空引用时,当它生成非空类型时,真正的问题出现了.它会导致您确实没有预料到的运行时Kotlin异常.
如果我没记错的话,我在重载Fragment
个类和View
个创建相关的方法时遇到了很多问题.