我正在使用Android Studio和模擬器android 4.1.2。 我的代碼android處理程序 - 確定,定時器 - 不幸停止。爲什麼不同?
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
myRun();
}
},10000,10000);
結果「不幸的是,應用程序已經停止」,但是我發現代碼
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
myRun();
}
}, 2000);
運行正常,並顯示如我所料。 這兩者之間的內在區別是什麼?
P.S.
public void myRun() {
myView.removeAllViews();
drawView = new DrawView(myContext, myView);
myView.addView(drawView);
}
我試圖永久更新自定義視圖,直到用戶取消它。只是週期
while (myRun) {
結果模擬器變得反應遲鈍到連後退按鈕,運行更新的第二個線程
new Thread(new Runnable() {
@Override
public void run() {
while (myRun) {
myView.post(new Runnable() {
public void run() {
myView.removeAllViews();
drawView = new DrawView(myContext, myView);
myView.addView(drawView);
}
});
}
}
}).start();
結果相同(有趣的是我,如果我用的斷點上,而在第二運行調試線程,屏幕更新,因爲我預計很多次,但運行w/out調試不會更新屏幕)。
請張貼您的錯誤日誌。 – starkshang