在后台线程中执行某项任务的内存消耗和最快(在代码行和执行时间方面)的方式是什么?
我需要向后台线程发送许多简单的任务,显然我不会使用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();
答案 0 :(得分:1)
处理程序通常用于UI线程,以便推迟将来要完成的事情。 在你的例子中,这个解决方案将是完美的。
当您不关心何时以及应该执行的任务的顺序时,使用asynctask。 asynctasks不应该用于太长时间的操作(比如一直保持活着直到最终用户停止它的连接)。你不能假设不止一个asynctask是活跃的(但可以假设一个)。
对于任何其他用法,我只是使用一个线程,但主要是处理程序和asynctask就足够了。
答案 1 :(得分:0)
看起来处理程序是写这篇文章的最快方式。如果出现更快的方法,我将更改此问题或将其他帖子标记为答案。