2017-04-23 4 views
1

IntentServiceをサブクラス化してLocationListenerを実装するクラスを作成すると、このクラスのすべてのメソッドがワーカースレッドで実行されますか?または、onHandleIntent()メソッドだけがワーカースレッドで実行されますか?すべてのメソッドはワーカースレッドで実行されますか?

+2

onHandleIntentのみ... IntentServiceはこれには適していません...まず、LocationListenerで動作する別のスレッドは必要ありません。第2に、IntentServiceはワーカースレッド上の一度だけのジョブです – Selvin

+0

答えのための@Selvinをありがとう。どのようにサービスのすべてのメソッドをワーカースレッドで実行できるようにすることができますか? –

+0

最初の質問は何のためのものなのでしょうか....しかし、もしあなたがwanaすればそれは新しいスレッドを開始します。 – Selvin

答えて

0

メソッドが実行される場所の定義は、メソッドがどこで呼び出され、定義されたクラスからではなく定義されます。

onHandleIntentメソッドはWorkerThreadで呼び出されるため、onHandleIntentから任意のメソッドを呼び出すと、WorkerThreadで実行されます。

サービスからUIスレッドで直接メソッドを呼び出すと、このメソッドはUIスレッドで実行されます。

関連する問題