摘要:[Android] Multi-Thread
方法1 建立Runable物件,並實作要在背景的方法。
new Thread(new Runnable() {
@Override
public void run() {
//可以執行長時間的工作
int i=0;
do{
i++;
}while(i>100);
mHandler.post(new Runnable() {
public void run() {
_ProBar.setProgress(100);
}
});
}
}).start();
方法2 建立繼承Thread的類別,並實作Run 方法已執行長時間運算。
public class DoLengthyWork extends Thread {
private Handler mHandler;
private ProgressBar mProBar;
public void run () {
Calendar begin = Calendar.getInstance();
do {
Calendar now = Calendar.getInstance();
final int iDiffSec = 60 * (now.get(Calendar.MINUTE) - begin.get(Calendar.MINUTE)) +
now.get(Calendar.SECOND) - begin.get(Calendar.SECOND);
if (iDiffSec * 2 > 100) {
mHandler.post(new Runnable() {
public void run() {
mProBar.setProgress(100);
}
});
break;
}
mHandler.post(new Runnable() {
public void run() {
mProBar.setProgress(iDiffSec * 10);
}
});
} while (true);
}
void setProgressBar(ProgressBar proBar) {
mProBar = proBar;
}
void setHandler(Handler h) {
mHandler = h;
}
}
protected void onCreate(Bundle savedInstanceState) {
// 從資源類別R中取得介面元件
ProgressBar proBar = (ProgressBar)findViewById(R.id.proBar2);
DoLengthyWork work = new DoLengthyWork();
work.setHandler(mHandler);
work.setProgressBar(proBar);
work.start();
}