我有以下代码:
protected View progressView;
protected LayoutParams progressParams;
class Task extends AsyncTask<String, Void, Result> {
String timeleft;
String error;
@Override
protected Result doInBackground(String... s) {
// ...
}
@Override
public void onPreExecute() {
getWindowManager().addView(progressView, progressParams);
}
@Override
protected void onPostExecute(Result result) {
getWindowManager().removeView(progressView); // throws exception
// ...
}
}
我的手机(而不是模拟器)上出现此错误。也许是因为我使用 tyween 的 HTC HD2 Android ROM,它启用了很多功能并且“处于边缘状态”。
03-02 22:53:08.303: E/test(5573): Exception: Hardware acceleration can only be used with a single UI thread.
03-02 22:53:08.303: E/test(5573): Original thread: Thread[main,5,main]
03-02 22:53:08.303: E/test(5573): Current thread: Thread[background thread,5,main]
如何解决此错误?
最佳答案
可以通过将 android:hardwareAccelerated="false"放在 list 中的应用程序标记中来避免此问题。但这当然不能解决问题。
关于java - WindowManager removeView 抛出 "Hardware acceleration ..."异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15180022/