我有以下代码:
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]
如何解决此错误?
答案 0 :(得分:1)
通过在清单中的应用程序标记中放置android:hardwareAccelerated =“false”可以避免此问题。但它当然没有解决问题。
答案 1 :(得分:0)
尝试在UI线程中添加视图。