0

我有一个 sax 解析器,它在用户点击开始按钮时运行。我想设置一个进度条视图,它将随着解析器的进展而更新。

我的代码目前如下:

public void onCreate (Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.progressview);

    try {
        XMLParser.parse(getAssets().open("deindexed.xml"), this);
    } catch (IOException e) {
        Log.d("XML","onCreate(): parse() failed");
        return;
    }

    //Start the Main Activity.
    System.out.println("Activity recreated");
    Intent i = new Intent(this, Simple.class);
    startActivity(i);

}

问题是 setContentView 在解析器完成之前不会更新(我理解这是意料之中的)。

谁能告诉我转换上述内容的最佳方法,以便它使用线程运行?

谢谢你。

4

1 回答 1

1

查看 ASyncTasks。或者,使用真正的线程并使用处理程序来回传递消息。使用 ASyncTasks 通常更容易/更整洁,但有时它不能像线程那样通用。对于您的 XML 解析器,ASyncTask 应该可以正常工作。

于 2012-05-24T13:55:15.217 回答