IntentService (kotlin) 的默认构造函数
Posted
技术标签:
【中文标题】IntentService (kotlin) 的默认构造函数【英文标题】:Default constructor for IntentService (kotlin) 【发布时间】:2017-04-08 10:49:18 【问题描述】:我是 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
任何想法如何修复 Kotlin 中的默认构造函数?
谢谢!
【问题讨论】:
【参考方案1】:正如here 解释的那样,您的服务类需要有无参数构造函数。将您的实现更改为示例:
class MyService : IntentService("MyService")
override fun onCreate()
super.onCreate()
override fun onHandleIntent(intent: Intent?)
IntentService 上的 android 文档指出此名称仅用于调试:
name
String
:用于命名工作线程,仅对调试重要。
虽然没有明确说明,但在提到的文档页面上,框架需要能够实例化您的服务类并期望会有一个无参数的构造函数。
【讨论】:
以上是关于IntentService (kotlin) 的默认构造函数的主要内容,如果未能解决你的问题,请参考以下文章