Создание несвязанного сервиса в Котлине

Я пытаюсь создать простой несвязанный сервис в Котлине, но я не могу. Когда я переопределяю onBind() метод в Java я могу вернуть null, но в Котлине говорится, что мне разрешено только возвращаться IBinder, а не IBinder?, это означает, что это не может быть null. Есть идеи, как это исправить, кроме перезаписи класса MyService в Java?

[решено] Спасибо, ребята! Я действительно могу измениться IBinder to IBinder?. Работает!!

1 ответов


как упоминал Энрико, вы можете изменить тип IBinder to IBinder? и он будет по-прежнему соответствовать интерфейсу.

ниже приведен пример:

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

В общем, будьте осторожны при использовании Android Studio для переопределения методов Андроид. Реальная проблема возникает, когда она генерирует ненулевой тип, когда система фактически может вернуть нулевую ссылку. Это вызывает исключения времени выполнения kotlin, которые вы действительно не ожидаете.

если я правильно помню, у меня было много вопросов при перегрузке Fragment класс и методы, связанные с View создание.