java - WindowManager removeView 抛出 "Hardware acceleration ..."异常

标签 java android exception

我有以下代码:

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/

相关文章:

java - 未报告的异常 IOException 从 URL 读取文件

java - 为 GUI 使用内部类的标准?

java - 在 App Engine 上定期运行一些 java?

java - 下载在线音频流并将其部分保存

Android布局均匀间距

c++ - 在构造函数 C++ 中处理 Try-catch block

java - 连接在远程 IP 上被拒绝,但在本地 IP 上被接受

android - ondraw 方法不起作用

java - 索尼爱立信 xperia x10 del key

php - 单元测试 : Simulate a timeout with Guzzle 5