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();
                }

            }
        }
    });

timer であり、すべてのテスターは以前に宣言されたスレッドです。情報は 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 に答える