我在android studio中有一个android应用的代码,可以在1秒钟的延迟后运行一个方法:
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
loginClicked();
}
},
1000
);
但是,每次执行时都会产生此错误:
java.lang.IllegalThreadStateException:必须将Looper与此线程关联。
我基本上是从this那里抢来的,所以我真的不知道怎么回事。
答案 0 :(得分:2)
在这种情况下,您最好在Android上使用Handler
。
TimerTask
是纯Java语言,您可以在此处查看差异和其他重要信息:https://stackoverflow.com/a/40339630/4409113
TimerTask
报告的一些问题包括:
但是,您可以使用以下代码:
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Do your things after 1000ms
loginClicked();
}
}, 1000);