发现有人有类似的问题在线点击这里.
这不起作用:
Timer t = new Timer(false);
t.schedule(new TimerTask() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "msg", Toast.LENGTH_LONG).show();
}
}, 5000);
Run Code Online (Sandbox Code Playgroud)
但是,如果我在timertask之外实例化toast然后在里面显示它run,它就可以工作了.
我认为它可能与所谓的UI线程有关,
但究竟怎么样?
试试这个
Timer t = new Timer(false);
t.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "msg", Toast.LENGTH_LONG).show();
}
});
}
}, 5000);
Run Code Online (Sandbox Code Playgroud)