0

次のコードがあります。

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]

このエラーを解決するにはどうすればよいですか?

4

2 に答える 2

1

この問題は、マニフェストのアプリケーション タグに android:hardwareAccelerated="false" を配置することで回避できます。しかし、もちろん問題は解決しません。

于 2013-03-02T23:25:04.600 に答える
0

UI スレッドにビューを追加してみてください。

于 2015-02-05T16:32:00.107 に答える