I have working Java code for Service and trying to convert it to 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   

In Java code it is:

return MyService.this 

推荐答案

下面的代码将帮助您

class MyService : Service() {

    inner class MyBinder : Binder() {
        fun getService() : MyService? {
            return this@MyService
        }
    }

    // service implementation

}

More info regarding this expression in Kotlin This Expression

Kotlin相关问答推荐

Compose:LaunchedEffect在密钥更改后不会重新启动

如何避免使用公共类实现内部接口

为何Kotlin标准库中的AND和OR函数不能像&&和||一样进行短路运算?

Kotlin - 如何避免在密封类的 when() 语句中转换第二个变量

将 Integer 转换为 Unit 编译成功

在 Compose 中使用 Text() 时如何获取文本的大小?

如何限制 Kotlin 中的枚举?

是什么让 Kotlin 中的 String 类能够使用方括号?

Kotlin 中获取类简单名称的最佳实践

如何在 Kotlin 中使用具有继承的泛型

异常传播如何在 CoroutineScope.async 上工作?

Kotlin 可打包类抛出 ClassNotFoundException

参考 Kotlin 中的 Java 接口静态字段

Kotlin 和 Java 字符串拆分与正则表达式的区别

Kotlinwhen表达式在使用主题时是否支持复合布尔表达式?

创建首选项屏幕时找不到androidx.preference.PreferenceScreen

如何在Kotlin中使用Handler和handleMessage?

@StringRes、@DrawableRes、@LayoutRes等android注释使用kotlin参数进行判断

如何在伴随对象中使用泛型

从 Kotlin 访问 Integer.class