我正在使用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