我正在尝试创建一个在Main活动运行时不断更新TextView的线程
我使用过Runnable类,但它不起作用 每次我的应用程序崩溃...
有没有办法做到这一点? 请帮忙
答案 0 :(得分:2)
您可能需要在活动中使用此功能:
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText("something.");
}
});
或者这个:
textView.post(new Runnable() {
@Override
public void run() {
textView.setText("something.");
}
});
这两个都可以让你在工作线程中更改UI。
答案 1 :(得分:2)
如果要定期从runnable更新UI,可以启动AsyncTask并从postExecute函数更新TextView。 postExecute总是在UI线程上运行。
您可以在此处找到更多信息:
https://developer.android.com/reference/android/os/AsyncTask.html
答案 2 :(得分:0)
Android不允许您从其他线程更改UI。这是OS设计决策,旨在简化UI处理。您可以在辅助线程上执行任何操作,但如果要与视图和窗口小部件进行交互,则必须通过UI线程执行此操作,如官方文档here中所述。