私のアプリは、応答するデバイスのサブネットをスキャンする必要があります (特定のサービスのポート 80/8080 を確認します)。executorservice/threadpool を使用してスキャン タスクを完了していましたが、完了までに約 30 秒かかりました。
上記のプロセスを asynctask を使用するように書き直しました - プロセスにかかる時間が大幅に長くなりました (数分)。
元の executorservice に戻り、このプロセス全体を妥協案として asynctask にラップしました (したがって、UI をブロックせず、迅速に完了します) が、これがベスト プラクティスであるとは思えません。また、進行状況の更新、キャンセルなどの問題も発生します。
UIの更新/キャンセル可能な機能を提供するより遅いプロセスを使用するのが最善ですか、それとも(プロセス全体で30秒しかかからないため)-より高速なエグゼキューターサービスを使用しますか?
ありがとう。