参考:https://qa.1r1g.com/sf/ask/441979051/
Android计时器/ timertask导致我的应用程序崩溃? 安卓开发 Android Cookie
一、Android计时器Timer的使用
Timer timer2 = new Timer();
TimerTask testing = new TimerTask() {
public void run() {
Toast.makeText(mainActivity.this, "test", Toast.LENGTH_SHORT).show();
}
};
timer2.schedule(testing, 1000);
程序运行后出现崩溃,原因是因为您尝试从其他线程(计时器线程)访问UI线程(toast)的元素。 你不可以做这个!
解决方法:
使用Handler和Runnable来执行Toast来解决问题
final Handler handler = new Handler();
Timer timer2 = new Timer();
TimerTask testing = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
Toast.makeText(mainActivity.this, "test", Toast.LENGTH_SHORT).show();
}
});
}
};
timer2.schedule(testing, 1000);