0

当我执行zipunzip下载文件并将数据从 XML 存储到数据库时,AsyncTask 工作正常。

但是现在我正在尝试在布局中实现https://github.com/fry15/uk.co.jasonfry.android.tools滑动(从数据库中选择数据并在 webview 中显示),它会在运行时添加布局,因此需要很长一段时间,所以我可以把它放在 AsyncTask 但现在 AsyncTask 进度轮没有旋转?

我的代码工作正常,但问题不是 AsyncTask 上的旋转轮。

public class LoadSlideAndQuestion extends AsyncTask<Void, Void, Void> {

    ProgressDialog pDialog;

    protected void onPreExecute() {
        pDialog = new ProgressDialog(DialogBoxOnClick.this);
        pDialog.setMessage("Loading Slide and Questions...");
        pDialog.setCancelable(false);
        pDialog.show();

    }

    protected Void doInBackground(Void... unused) {

        Intent i = new Intent(DialogBoxOnClick.this, SlideScreen.class);
        startActivity(i);
        finish();
        return (null);
    }

    @Override
    protected void onProgressUpdate(Void... values) {
        // TODO Auto-generated method stub
        super.onProgressUpdate(values);
    }

    protected void onPostExecute(Void unused) {
        pDialog.dismiss();
    }

}

幻灯片活动

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.temp);
    Display display = getWindowManager().getDefaultDisplay();
    width = display.getWidth();
    topic = getIntent().getSerializableExtra("name").toString();
    fetchdata();

    PageControl mPageControl = (PageControl) findViewById(R.id.page_control);
    mSwipeView = (SwipeView) findViewById(R.id.swipe_view);

    mSwipeView.setPageControl(mPageControl);

    for (int i = 0; i < max; i++) {
        mSwipeView.addView(new FrameLayout(this));
    }

    for (int i = 0; i < max; i++) {

        ((FrameLayout) mSwipeView.getChildContainer().getChildAt(i))
                .addView(setupView());
        count++;
    }
}

setupView() 函数返回视图

    public View setupView() {

    LayoutInflater layoutInflator = getLayoutInflater();
    LinearLayout childlayout = (LinearLayout) layoutInflator.inflate(
            R.layout.webview, Switcher, false);

    question_number = (TextView) childlayout
            .findViewById(R.id.question_number);
    question_type = (TextView) childlayout.findViewById(R.id.question_type);
    question_parameters = (TextView) childlayout
            .findViewById(R.id.question_parameter);
    question_correct_answer = (TextView) childlayout
            .findViewById(R.id.question_correct_answer);
    question_difficulty = (TextView) childlayout
            .findViewById(R.id.question_difficulty);
    newObject = new Questionclass();
    newObject = XmlHandler.questionlist.get(count);
    System.out.println(newObject.QUESTION_NUMBER + "   NEW OBJECT");

    questionView = (WebView) childlayout.findViewById(R.id.Que_View);
    WebSettings webSettings = questionView.getSettings();
    // webSettings.setTextSize(WebSettings.TextSize.NORMAL);
    webSettings.setDefaultFontSize(23);

    question_number.setText(newObject.QUESTION_NUMBER);
    question_type.setText(newObject.QUESTION_TYPE);
    question_correct_answer.setText(newObject.QUESTION_CORRECT_ANSWER);
    question_parameters.setText(newObject.QUESTION_PARAMETERS);
    question_difficulty.setText(newObject.QUESTION_DIFFICULTY);

    questionView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

    questionView.getSettings().setRenderPriority(RenderPriority.HIGH);
    questionView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

    questionView.clearView();
    questionView.loadDataWithBaseURL(
            "",
            IntegralParse.htmlParse(newObject.QUESTION_CODE,
                    "/mnt/sdcard/CHECK_LESSON_QUESTIONS/" + topic + "/" + topic
                            + "/" + newObject.QUESTION_NUMBER,
                    getApplicationContext(), width)
                    + "<hr/>"
                    + IntegralParse.htmlParse(newObject.QUESTION_SOL_CODE,
                            "/mnt/sdcard/CHECK_LESSON_QUESTIONS/" + topic + "/"
                                    + topic + "/"
                                    + newObject.QUESTION_NUMBER,
                            getApplicationContext(), width), "text/html",
            "utf-8", "");
    questionView.requestLayout();
    return childlayout;

}
4

1 回答 1

0

您是否尝试在 UI 线程之外操作 UI?您需要使用 aHandler对任务进行排队,以便从后台线程在 UI 线程上执行。

有关与 UI 线程通信的更多信息。

于 2013-03-12T09:44:16.753 回答