在Android上线程化

时间:2012-05-28 14:51:40

标签: android multithreading

我有以下无效:

public void load() {
//loading big picture from the Internet
}

我想让它在一个新线程中运行。 我可以这样称呼这个程序:

new Thread(new Runnable() {
public void run() {
load();
}
}).start();

或者修改这个空格会更好:

public void load() {
new Thread(new Runnable() {
public void run() {
//loading big picture from the Internet
}
}).start();
}

并简单地称之为:

load();

或者没有什么不同?

1 个答案:

答案 0 :(得分:0)

在功能上,它们是相同的。有一些设计细节可能会让你考虑第一种方式而不是另一种方式。

如果您有许多不同的线程而不是他们自己的东西,但也称为load(),您可能需要第一个选项。在这种情况下,您已经创建了该线程,因此如果他们调用load()您不希望/需要创建另一个。

第二种选择非常方便。您只需在任意位置拨打load()即可。如果将来load()方法更改为未阻止的点,则可以更改它,并且不需要进一步更改代码。

或者,考虑使用AsyncTask,如前所述。它专门针对您正在尝试的内容而构建。