2017-04-10 16 views
-1

ランチャーアクティビティのonCreate()からサービスを開始しようとしています。Androidサービスonstart()呼び出し側アクティビティのonCreate()が終了した後にのみ呼び出される

私はインテントオブジェクトを作成し、startService()を呼び出しました。これは新しいスレッドでサービスを呼び出しますか?サービスのonStartCommandが呼び出されるのは、アクティビティのonCreate()が終了した後だけです。

これは本当ですか?もしそうであれば、サービスを並行して開始する方法、すなわちoncreateはサービスのonStartCommandと並行して終了し続けることができる。

ありがとうございます。

+0

アプリケーションクラスのstartService()アプリケーションクラス –

+0

サンプルコードのリンクを共有してください。 –

+0

@HiteshGehlotなぜdownvoteですか?私はこれがアンドロイドを開始する誰によって頼まれることになっていると思う。いずれのドキュメントにも記載されていません。 –

答えて

1

これは新しいスレッドでサービスを呼び出しますか?

Javaでは、オブジェクトはスレッド上で実行されません。メソッドはスレッド上で実行されます。

サービスのonStartCommandは、アクティビティのonCreate()が終了した後にのみ呼び出されます。

正しい。 startService()は、単にサービスを開始する要求をキューに入れるだけです。 Androidはメインのアプリケーションスレッドの制御をフレームワークに返すまでそれを行うことはできません。 onCreate()が実行されている限り、メインのアプリケーションスレッドを縛っています。各コールバック(onCreate())が非常に非常に高速なで、理想的には1ミリ秒未満であることを確認する必要があります。

場合は、サービスを並列に開始する方法です。つまり、oncreateはサービスのonStartCommandと並行して終了します。

これはできません。申し訳ありません。

+0

ありがとうございます。それが私の疑問を裏付ける。 –

関連する問題