naui Android.Util.AndroidRuntimeException: 'Only the original thread that created a view hierarchy can touch its views.'
时间: 2023-12-30 19:24:46 浏览: 172
根据提供的引用内容,你遇到了一个Android运行时异常:Android.Util.AndroidRuntimeException: 'Only the original thread that created a view hierarchy can touch its views.' 这个异常通常在多线程操作UI界面时出现。在Android中,只有创建视图层次结构的原始线程才能访问和修改视图。
为了解决这个问题,你可以使用以下方法之一:
1. 使用runOnUiThread()方法:这个方法允许你在非UI线程中更新UI。你可以在需要更新UI的地方调用runOnUiThread()方法,并在其中执行UI操作。
```java
runOnUiThread(new Runnable() {
public void run() {
// 在这里执行UI操作
}
});
```
2. 使用Handler类:Handler类允许你在非UI线程中发送和处理消息。你可以在非UI线程中创建一个Handler对象,并使用它发送消息到UI线程,然后在UI线程中处理这些消息来更新UI。
```java
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
public void run() {
// 在这里执行UI操作
}
});
```
3. 使用AsyncTask类:AsyncTask类是Android提供的一个方便的类,用于在后台线程执行异步任务,并在UI线程中更新UI。你可以继承AsyncTask类,并在doInBackground()方法中执行后台任务,在onPostExecute()方法中更新UI。
```java
private class MyTask extends AsyncTask<Void, Void, Void> {
protected Void doInBackground(Void... params) {
// 在这里执行后台任务
return null;
}
protected void onPostExecute(Void result) {
// 在这里更新UI
}
}
// 在非UI线程中执行任务
new MyTask().execute();
```
阅读全文