Android 奇怪!!,Textview值正在从后台线程更新

Android 奇怪!!,Textview值正在从后台线程更新,android,multithreading,android-ui,Android,Multithreading,Android Ui,今天,当我玩随机的东西时,发生了一些奇怪的事情。我的代码如下所示: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView textView = (TextView) findViewById

今天,当我玩随机的东西时,发生了一些奇怪的事情。我的代码如下所示:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextView textView = (TextView) findViewById(R.id.txtName);
        new Thread() {

            @Override
            public void run() {
                for(int i=0; i<100; i++){
                    textView.setText("Hello I am fine" +i);
                    textView.setTextColor(Color.RED);
//                  Toast.makeText(getApplicationContext(), "Hello I am fine", Toast.LENGTH_LONG).show();
                }
            }
        }.start();
        ((TextView) findViewById(R.id.txtName)).setText("Hello");

    }
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终文本视图文本视图=(文本视图)findViewById(R.id.txtName);
新线程(){
@凌驾
公开募捐{

对于(int i=0;i您无法从后台线程更新ui。请使用
runOnUIThread

   runOnUiThread(new Runnable() {
   @Override
   public void run() {
     textView.setText("Hello I am fine" +i);
     textView.setTextColor(Color.RED);
   }
  });
从文件中引用


每个应用程序都有自己的特殊线程,运行UI对象,如视图对象;此线程称为UI线程。只有在UI线程上运行的对象才能访问该线程上的其他对象。

但此代码正常工作这是个问题,但不应如此working@NixitPatel你应该得到一个例外,你的线程开始了吗?还有,你为什么要这样做你有这个
((TextView)findviewbyd(R.id.txtName)).setText(“你好”)
启动后?@NixitPatel如果线程实际运行,则会出现异常。@NixitPatel在将文本设置为textview之前,请尝试放置thread.sleep并选中它device@NixitPatel你们在设备上试过了吗?因为我确实遇到了一个异常。在emulator上,我不得不放thread.sleep(1000)例外情况是,你应该检查高于3.0的Android操作系统。我在每个版本上都试过,但它可以工作,但从技术上讲它不应该工作