IntentService (kotlin) 的默认构造函数
Default constructor for 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
关于如何修复 Kotlin 中的默认构造函数有什么想法吗?
谢谢!
如here 所述,您的服务class 需要无参数构造函数。将您的实施更改为示例:
class MyService : IntentService("MyService") {
override fun onCreate() {
super.onCreate()
}
override fun onHandleIntent(intent: Intent?) {
}
}
IntentService 上的 Android 文档声明此名称仅用于调试:
name
String
: Used to name the worker thread, important only for debugging.
虽然没有明确说明,但在提到的文档页面上,框架需要能够实例化您的服务 class 并期望有一个无参数的构造函数。
我是 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
关于如何修复 Kotlin 中的默认构造函数有什么想法吗?
谢谢!
如here 所述,您的服务class 需要无参数构造函数。将您的实施更改为示例:
class MyService : IntentService("MyService") {
override fun onCreate() {
super.onCreate()
}
override fun onHandleIntent(intent: Intent?) {
}
}
IntentService 上的 Android 文档声明此名称仅用于调试:
name
String
: Used to name the worker thread, important only for debugging.
虽然没有明确说明,但在提到的文档页面上,框架需要能够实例化您的服务 class 并期望有一个无参数的构造函数。