0

私は、ファイルIOを多用する仕事をする単純なAndroidサービスをコーディングしています。サービスはしばらくバックグラウンドで実行され、サービスの初期化にはしばらく時間がかかります。(スキャンするファイルが多いため、時間がかかります)。

  1. そのため、サービスはUIスレッドで実行されるため、サービスを初期化するためにスレッドを使用する必要があると思いました。これは良い考えですか?
  2. join()メソッドを呼び出して初期化スレッドが終了するのを待って、時間のかからないジョブを実行する必要がありますか?

初期化にスレッドを使用しようとしている理由は、サービスの起動時にサービスを開始するアクティビティがハングしたくないためです。

更新 わかりました。サービスを使用しようとしている理由は、外部クライアント(WebブラウザーやPCクライアントなど)がAndroidフォンのファイルにアクセスするための手段を提供するためです。また、アプリケーションがバックグラウンドに移行したときにサービスを実行し続けることを許可したいと思います。

4

2 に答える 2

1
于 2012-12-28T18:21:02.993 に答える
1

IntentServiceを見てください。別のスレッドで自動的に実行され、作業が完了すると終了します。あなたの状況に適しているようです。

于 2012-12-28T18:21:11.477 に答える