我为Service
编写了 Java 代码,并尝试将其转换为 Kotlin 。
class MyService : Service() {
companion object MyBinder : Binder() {
fun getService() : MyService? {
return MyService::class.objectInstance
}
}
// service implementation
}
问题在于,活动getService()
始终返回null。我确信service
之前已经开始了,我在logcat中看到它。我建议Java代码中的这个自动生成的行应该不同但我找不到解决方案:
return MyService::class.objectInstance
在Java代码中它是:
return MyService.this
答案 0 :(得分:12)
下面的代码将有助于您的
class MyService : Service() {
inner class MyBinder : Binder() {
fun getService() : MyService? {
return this@MyService
}
}
// service implementation
}
有关Kotlin中此表达式的更多信息 This Expression
答案 1 :(得分:0)
这是这样做的简短方法(另外包括onBind())
class MyService : Service() {
override fun onBind(intent: Intent) = LocalBinder()
inner class LocalBinder : Binder() {
fun getService() = this@SensorService
}
}