Android 将任务发送到后台的最快和最轻的方式是什么?

Android 将任务发送到后台的最快和最轻的方式是什么?,android,android-asynctask,handler,Android,Android Asynctask,Handler,在后台线程中执行某项任务时,哪种方式占用内存少、速度快(就代码行和执行时间而言) 我需要将许多简单任务发送到后台线程,显然我不会为此使用AsyncTask类。那么,handler是我要找的还是有更快的方法 final Handler handler = new Handler(); final Runnable runnable = new Runnable() { @Override public void run() {

在后台线程中执行某项任务时,哪种方式占用内存少、速度快(就代码行和执行时间而言)

我需要将许多简单任务发送到后台线程,显然我不会为此使用
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();

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

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

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


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

为什么不使用asynctask?还是更好的任务加载器?你的“简单任务”是什么?@MichałK像我写的那样使用一行命令。主要是通过延时来设置可见性。我想handler是你最好的选择,但我有另一个想法,听起来可能很奇怪,但想想看。如果只是更改可见性,那么可以在ui线程中执行,而不会出现问题。唯一的问题是时间延迟。但您可以使用动画来执行此操作,并将动画延迟1秒。这将是迄今为止最简单的解决方案,而且我还认为与处理程序相比,它相当轻量级。注意:延迟动画不会冻结用户界面thread@Micha好的,谢谢。在这种情况下,你是绝对正确的。向上投票。那个理论问题呢:哪种背线方式最轻?不幸的是,我不知道。但是,我可以告诉您使用-Loader的问题最少。它还可以用于写入数据,不仅用于加载,它最大的优点是它有一个内置的机制来防止内存泄漏和配置更改问题。它很好地分离了后台线程的逻辑。我几乎在任何地方都使用AsyncTaskLoader谢谢。很好的解释。最后一句话是什么意思“对于任何其他用法,我只是使用线程”?哪根线?