在Kotlin中创建未绑定的服务

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

[已解决]谢谢,伙计们! 我真的可以将IBinder改为IBinder? 。 有用!!

正如Enrico所说,您可以将IBinder的typesIBinderIBinder? 它仍将匹配界面。

一个例子如下:

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

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

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