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操作系统。我在每个版本上都试过,但它可以工作,但从技术上讲它不应该工作