0

我遇到了许多(初学者)可能感兴趣的问题。让我给你看一下代码:

startButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            startButton.setVisibility(View.GONE);
            if (!started) {
                started = true;
                timer.start();
                information.append("Start 1\n");
                tester1.start();
                if (cores >= 2) {
                    information.append("Start 2\n");
                    tester2.start();
                }
                if (cores >= 3) {
                    information.append("Start 3\n");
                    tester3.start();
                }
                if (cores >= 4) {
                    information.append("Start 4\n");
                    tester4.start();
                }

            }
        }
    });

计时器,所有测试者都是先前声明的线程。信息是一个TextView。

问题是当我运行应用程序时,线程完成后文本视图会发生变化,即使线程需要 10 秒才能完成。这确实发生在模拟器(android 2.3)和真实(android 4.0)设备上。奇怪的是,线程确实在大致相同的时间开始。

4

1 回答 1

0

必须从主线程更新任何 UI 组件。

例如

runOnUiThread(new Runnable() {
    public void run() {
        someTextView.setText(someResultVariable);
    }
});
于 2012-09-02T20:39:23.300 回答