Конструктор по умолчанию для IntentService (kotlin)

Я новичок в Kotlin и немного стек с intentService. Манифест показывает мне ошибку, что моя служба не содержит конструктор по умолчанию, но внутри службы он выглядит нормально и ошибок нет.

вот мой intentService:

class MyService : IntentService {

    constructor(name:String?) : super(name) {
    }

    override fun onCreate() {
        super.onCreate()
    }

    override fun onHandleIntent(intent: Intent?) {
    }
}

Я также попробовал другой вариант:

class MyService(name: String?) : IntentService(name) {

но когда я пытаюсь запустить эту службу, я все равно получаю сообщение об ошибке:

java.lang.Class<com.test.test.MyService> has no zero argument constructor

любые идеи, как исправить конструктор по умолчанию Котлин?

спасибо!

1 ответов


как пояснил здесь ваш класс обслуживания должен быть без параметров consturctor. Измените реализацию в пример:

class MyService : IntentService("MyService") {
    override fun onCreate() {
        super.onCreate()
    }

    override fun onHandleIntent(intent: Intent?) {
    }
}

документация для Android на IntentService утверждает, что это имя используется только для отладки:

name String: используется для имени рабочего потока, важного только для отладки.

пока не указано явно, на упомянутой странице документации, framework должен иметь возможность создавать экземпляр класса службы и ожидает, что будет конструктор без параметров.