Android中Thread类的问题

yubinyuleo 2010-10-16 01:29:22
下面这个程序的目的是先显示一个hello,五秒钟后再显示一个world,但是为什么一开始屏幕是黑的,不显示hello,五秒钟后再显示了一个world,问一下各位为什么会是这样?
package Yuleo.Android.ThreadTest;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class Activity01 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv=new TextView(this);
tv.setText("hello");
setContentView(tv);
Thread t=new Thread();
t.start();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t=null;
tv.setText("world");
setContentView(tv);
}
}

...全文
150 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
one2zero 2010-10-16
  • 打赏
  • 举报
回复
被人 鄙视了。。。

onCreate() 未结束 activity 还未创建成功

所以你在 onCreate() 再怎么 setText() 最后画面出来的Text 内容也是最后一个的内容

ameyume 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 one2zero 的回复:]
不需要2次 setContentView(tv);

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv=new TextView(this);
setContentView(tv);
Thread t=new Threa……
[/Quote]
one2zero 2010-10-16
  • 打赏
  • 举报
回复
不需要2次 setContentView(tv);

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv=new TextView(this);
setContentView(tv);
Thread t=new Thread();
t.start();
try {
tv.setText("hello");
Thread.sleep(5000);
tv.setText("world");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t=null;
}

试试

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧