2

私は非同期タスクに取り組んでいます。非同期タスクを呼び出すと、不要な非同期タスクのメソッドexecute()を呼び出すのに 1 秒かかります。doInBackground()その時間を短縮する方法を知っている人はいますか?

4

3 に答える 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 に答える