私はサービスがバックグラウンドで実行されることを理解します。以前はServiceクラスを使用していましたが、その関連メソッドを知っています。しかし、私の質問は、バックグラウンドでサービスを実行することに対応する内部操作に関連しています。サービスはどのようにAndroidで内部的に動作しますか?
ドキュメントから:"サービスは他のアプリケーションオブジェクトと同様に、ホスティングプロセスのメインスレッドで実行されることに注意してください。
また、私はこの質問にチェック:これはUIスレッドが動作を維持し、サービスを行うことになっているタスクを実行することをHow does a service runs in the background - Android
を意味していますか?これは "アプリケーションの背景"で実行されていると見なすことができますか?アプリケーションのタスクはデフォルトでメインスレッドで実行されるため、サービスはUIなしでそのスレッドで実行されますか?その言葉は正しいですか?または、「OSのバックグラウンドで実行する」がより正確ですか?
サービス(IntentServiceではない)を使用して、そのサービス内で新しいスレッドを開始した場合、アプリケーションのバックグラウンドで実行されているように見えるか、そのスレッドが別のプロセスで実行され、 OSのバックグラウンドで実行していますか?
誰かがこの概念を理解するのを手伝っていただければ幸いです。
ありがとうございました
ありがとうございます。しかし、ドキュメンテーションの「背景」という用語は、アプリやOSの背景ですか?または、それがUIを持たないことを示すだけですか?また、サービスがスレッドを開始する場合、そのスレッドはアプリケーションのプロセス内で実行されるか、別のプロセスで実行されますか?ありがとうございました。 – Dania
すべてのサービスはデフォルトで同じプロセスにあるため、サービスによって起動されるすべてのスレッドは同じプロセスになります。サービスを別のプロセスで起動することもできますが、いくつかの制限(バインドするためにaidl経由でIPCを使用する必要があるなど)を受け入れることができます。そうすると、アプリケーションの残りの部分とは別のメインスレッドが作成されます。しかし、あなたが何をやっているのか分からない限り、それはお勧めしません。ドキュメンテーションの背景は、「UIを表示しない」ことを意味し、画面上に何があっても実行を継続することを示します。 –
素晴らしいです、ありがとうございました。 – Dania