2016-11-24 5 views
4

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

Вот мой 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 

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

Спасибо!

ответ

7

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

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

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

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

name String : Used to name the worker thread, important only for debugging.

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

+0

Большое спасибо !!! –

Смежные вопросы