Конструктор по умолчанию для 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 должен иметь возможность создавать экземпляр класса службы и ожидает, что будет конструктор без параметров.