0

バックグラウンドスレッドでいくつかのタスクを実行するための、メモリ消費量が少なく、(コード行と実行時間に関して)最速の方法は何ですか?

多くの単純なタスクをバックグラウンドスレッドに送信する必要がありますが、これには明らかにAsyncTaskクラスを使用しません。それでhandler、私が探しているものですか、それとももっと速い方法がありますか?

    final Handler handler = new Handler();
    final Runnable runnable = new Runnable() {
        @Override
        public void run() {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            handler.post(new Runnable() {
                @Override
                public void run() {
                    infoMsg.setVisibility(View.INVISIBLE);
                }
            });
        }
    };
    new Thread(runnable).start();
4

2 に答える 2

1

ハンドラーは通常、将来行われることを延期するためにUIスレッドに使用されます。あなたの例では、このソリューションは完璧です。

asynctaskは、実行するタスクの順序をいつ、何にするかを気にしない場合に使用されます。asynctasksは、長すぎる操作(エンドユーザーが停止するまで存続し続ける接続など)には使用しないでください。複数の非同期タスクがアクティブであると想定することはできません(ただし、1つは想定しても問題ありません)。

他の使用法では、私は単にスレッドを使用しますが、ほとんどの場合、ハンドラーと非同期タスクで十分です。

于 2012-05-26T11:58:30.447 に答える
0

この投稿を書いている時点では、ハンドラーが最速の方法のようです。より速いアプローチが表示された場合は、この質問を変更するか、他の投稿を回答としてマークします。

于 2012-05-26T11:39:41.763 に答える