2012-03-28 87 views
0

刷新的TextView我想显示几秒钟一些文字,然后退出我的申请,我使用下面的代码:当线程处于休眠状态

public void idonot(View V) throws InterruptedException 
{ 
    TextView txt = (TextView) findViewById(R.id.TEXT_VIEW); 
    txt.setText("Please uninstall application"); 
    Thread.sleep(2000); 
    android.os.Process.killProcess(android.os.Process.myPid()); 
} 

问题是TextView的没有得到刷新又能怎样我做 ?

+0

什么意思,没有得到刷新?请不要显示文字“请卸载应用程序”?这是一个新的线程? – 2012-03-28 07:21:19

回答

2

Android UI在主线程上运行。这意味着,UI也绘制在主线程上。如果你让主线程进入睡眠状态并杀死它(!),UI将如何刷新?

取而代之的是使用Handler来发布延迟后执行的任务。这个可运行的会被发布到线程的消息队列中,并在2秒后执行。

public void idonot(View V) 
{ 
    TextView txt = (TextView) findViewById(R.id.TEXT_VIEW); 
    txt.setText("Please uninstall application"); 

    (new Handler()).postDelayed((new Runnable() { 
     @Override 
     public void run() { 
      finish(); 
     } 
    }), 2000); 
}