2016-11-24 6 views
4

私はintentServiceでKotlinと少しのスタックで新しくなっています。マニフェストには、私のサービスにデフォルトのコンストラクタが含まれていないというエラーが表示されますが、サービス内ではokと思われ、エラーはありません。ここで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 

どのようにKotlinのデフォルトのコンストラクタを修正するためのアイデアですか?

ありがとうございます!

答えて

7

説明したように、hereのサービスクラスには、パラメータのないコンストラクタが必要です。あなたの実装では、例のように変更:

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.

明示的に述べられていないが、言及したドキュメントページ上で、フレームワークのニーズをあなたのサービスクラスをインスタンス化することができるようにし、パラメータのないコンストラクタが存在することを期待します。

+0

大変感謝!!! –

関連する問題