我有一个非常简单的活动,可以将自定义日期时间字符串打印到 textView。我在它自己的 MainActivity 中实现了一个可运行的接口,并在方法Thread
的末尾创建了一个onCreate
。
Thread thread = new Thread(this);
thread.run();
这是运行方法
public void run() {
while (true) {
try {
Thread.sleep(1000);
localTime.setText(LocalTime.getTime().format2445());
System.out.println(LocalTime.getTime().format2445());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
当我在模拟器上运行它时,我可以在 logcat 中看到系统。但模拟器在大约 5 秒后显示 ANR。我究竟做错了什么。这种方法不合适吗?是异步任务是去这里的方式吗?我需要每秒更新一次时钟,所以让 AsyncTask 永远运行是一种可以接受的模式吗?