不执行UI的线程出来说不幸停止了

时间:2014-09-04 19:21:39

标签: android eclipse

其中计时器是一个textview并在运行时抛出错误,UI出来说不幸已经停止了。下面有附加错误的链接.Plz帮助不理解我哪里出错了

  protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.level_twolayout);
        Thread t1 = new Thread(new Runnable() {
                    public void run() {
                        for (int i = 0; i < 10; i++) {
                            try {
                                Thread.sleep(1000);

                            } catch (Exception e) {

                            }
                            Timer.setText("Hello");
                        }
                    }
                });         
                t1.start();
        }

Error

1 个答案:

答案 0 :(得分:0)

您必须从主线程更新UI。

使用此代码。代替Timer.setText(&#34; Hello&#34;);

// verify we are indeed updating UI on main thread.
runOnUiThread(new Runnable() {

    @Override
    public void run() {
        // go ahead and update UI
        Timer.setText("Hello");
    }
});

runOnUiThread是一个Activity方法。请参阅http://developer.android.com/reference/android/app/Activity.html#runOnUiThread%28java.lang.Runnable%29

你需要调用MyActivityName.this.runOnUiThread()或者更简单地调用runOnUiThread()作为&#34;这个&#34;将指向您正在创建的Runnable的范围,而不是您的Activity。

最后,&#34;计时器&#34;可能不是TextView的最佳名称。