Java sleep()与Android上的网络任务结合使用时出现问题

Java sleep()与Android上的网络任务结合使用时出现问题,java,android,sleep,Java,Android,Sleep,我需要实现一个下载任务,它会发出一个字符串,我会在textview中显示该字符串。这个和这个配合得很好 由于数据保护,视图中的文本将在大约10秒后删除,这就是我的问题开始的地方 这是我的onPostExecute()方法: 受保护的void onPostExecute(字符串结果){ txtOutput.setText(结果); int i=0; while(txtOutput.getText().toString().equals(“”&&iwhile循环没有问题;我尝试了以下代码,得到了完美

我需要实现一个下载任务,它会发出一个字符串,我会在textview中显示该字符串。这个和这个配合得很好

由于数据保护,视图中的文本将在大约10秒后删除,这就是我的问题开始的地方

这是我的onPostExecute()方法:

受保护的void onPostExecute(字符串结果){
txtOutput.setText(结果);
int i=0;

while(txtOutput.getText().toString().equals(“”&&iwhile
循环没有问题;我尝试了以下代码,得到了完美的结果

System.out.println("1");
int i = 0;
while (i <= 30) {
    TimeUnit.SECONDS.sleep(1);
    i++;
}
TimeUnit.SECONDS.sleep(10);
System.out.println("2");
40秒后:

2

请尝试此代码。

要比较字符串,您需要使用
equals()
方法而不是
=
。您也可以使用
isEmpty()
,因此请尝试

protected void onPostExecute(String result) {
    txtOutput.setText(result);

    new Handler().postDelayed(new Runnable(){
        public void run() {
            txtOutput.setText("");
        }
    }, 10000);        
}

也不要休眠Ui线程(更多)

是否有一些日志?或者什么都没有?不要使用
=
而是
equals()
isEmpty()
请您解释一下:“直到显示输出”?当您调用setText()时,TextView将“立即”重新绘制。并且不要睡眠您的UI线程!onPostExecute在您的UI线程中执行。好的,这只是一个粗心的错误,不是主要问题。循环是我的想法,没有它就无法工作。删除循环。请参阅“编辑带处理程序”(不会阻止UI线程)嗯,我的问题在于网络任务和循环的结合。它们单独工作,但不能一起工作…@rohit:这是我尝试的第一件事:(伙计们,睡UI线程是个坏主意\!!用处理程序发布,它会工作的。
2
    protected void onPostExecute(String result) {
        txtOutput.setText(result);
        try {
            Thread.sleep(10000);
        }catch(Exception e) { }
        txtOutput.setText("");
    }
protected void onPostExecute(String result) {
    txtOutput.setText(result);

    new Handler().postDelayed(new Runnable(){
        public void run() {
            txtOutput.setText("");
        }
    }, 10000);        
}