私は非同期タスクに取り組んでいます。非同期タスクを呼び出すと、不要な非同期タスクのメソッドexecute()
を呼び出すのに 1 秒かかります。doInBackground()
その時間を短縮する方法を知っている人はいますか?
質問する
217 次
3 に答える
0
execute()
そのように使用する代わりにexecuteOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ...)
、ExecutorServiceは必要ありません。
于 2012-11-09T13:02:14.710 に答える
0
そのようなことはシステム次第です。マルチスレッドで作業するときは、タイミングについて何も想定しないでください。
とにかく、AsyncTask が繰り返し同じ作業を行う場合は、Runnable を引数として取得する ExecutorService を使用してみてください。ExecutorServices は、作成されたスレッドを自動的に破棄しませんが、再利用を試みます。そうすれば、開始時間が短縮される可能性があります。
于 2012-11-09T07:05:46.480 に答える
0
を呼び出すのにdoInBackground()
1 秒か、それとも結果を返すのに 1 秒か? を使用する理由はAsyncTask
、UI スレッドから非同期で長い操作を実行するためです。時間がかかる (例: 1 秒) 操作を実行することが、それらが存在する理由です。
于 2012-11-09T07:07:50.520 に答える