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

handler 通常用于 UI 线程,以推迟将来要做的事情。在您的示例中,此解决方案将是完美的。

当您不关心何时以及应该执行任务的顺序时,使用 asynctask 。asynctasks 不应该用于太长的操作(例如在最终用户停止之前一直保持活动状态的连接)。您不能假设有多个 asynctask 处于活动状态(但可以假设一个)。

对于任何其他用途,我只是使用一个线程,但大多数情况下处理程序和 asynctask 就足够了。

于 2012-05-26T11:58:30.447 回答
0

在撰写本文时,处理程序似乎是最快的方法。如果出现更快的方法,我将更改此问题或将其他帖子标记为答案。

于 2012-05-26T11:39:41.763 回答