我有以下无效:
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();
或者没有什么不同?
答案 0 :(得分:0)
在功能上,它们是相同的。有一些设计细节可能会让你考虑第一种方式而不是另一种方式。
如果您有许多不同的线程而不是他们自己的东西,但也称为load()
,您可能需要第一个选项。在这种情况下,您已经创建了该线程,因此如果他们调用load()
您不希望/需要创建另一个。
第二种选择非常方便。您只需在任意位置拨打load()
即可。如果将来load()
方法更改为未阻止的点,则可以更改它,并且不需要进一步更改代码。
或者,考虑使用AsyncTask,如前所述。它专门针对您正在尝试的内容而构建。