我正在尝试在新线程中运行计算,我只是不确定正确的方法。我不确定我是否应该使用:
private Thread calcThread = new Thread(){
@Override
public void run(){
calc();
}
};
然后在我想进行计算时使用calcThread.run()或者我应该这样做:
new Thread(new Runnable() {
public void run() {
calc();
}
}).start();
每当我想运行我的计算时。
哪个更好,哪一个?
感谢。
答案 0 :(得分:2)
做这样的事情
public class cal extends Thread {
public void run(){
calc();
}
}
只需像这样创建这个类的对象
cal c = new cal();
c.start();
您可以在代码中的任何位置开始执行计算的线程。
答案 1 :(得分:1)
Android中后台线程上最简单的方法是AsyncTask。
http://developer.android.com/reference/android/os/AsyncTask.html
AsyncTask将处理在后台线程上运行您的计算,然后在UI线程上返回您的结果。
private class DoCalculationTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... arg0) {
calc();
return null;
}
protected void onPostExecute(Void result) {
// Post results to main thread
}
}
答案 2 :(得分:0)
几乎一样。第二个是稍微清洁,恕我直言,因为实现接口被广泛认为是比子类化框架类更好的做法。如果在某个遥远的未来Thread.run()
不再是线程入口点怎么办?不太可能,我知道......