我需要实现一个下载任务,它发出一个我在textview中显示的字符串。这与此method完美配合。
由于数据保护,视图中的文本应在ca.之后删除。 10秒,这就是我的问题开始的地方。
这是我的onPostExecute() - 方法:
protected void onPostExecute(String result) {
txtOutput.setText(result);
int i = 0;
while (txtOutput.getText().toString().equals("") && i <= 30) {
TimeUnit.SECONDS.sleep(1);
i++;
}
TimeUnit.SECONDS.sleep(10);
txtOutput.setText("");
}
while循环在那里,所以10秒钟不会开始直到显示输出。
我的问题是输出永远不会显示。
/ edit:我调整了字符串比较
答案 0 :(得分:0)
while
循环没有问题;我尝试了以下代码,并且完美地得到了结果。
System.out.println("1");
int i = 0;
while (i <= 30) {
TimeUnit.SECONDS.sleep(1);
i++;
}
TimeUnit.SECONDS.sleep(10);
System.out.println("2");
我得到了:
1
并在40秒后:
2
答案 1 :(得分:0)
protected void onPostExecute(String result) {
txtOutput.setText(result);
try {
Thread.sleep(10000);
}catch(Exception e) { }
txtOutput.setText("");
}
试试这段代码。
答案 2 :(得分:0)
要比较字符串,您需要使用equals()
方法而不是==
。您也可以使用isEmpty()
尝试
protected void onPostExecute(String result) {
txtOutput.setText(result);
new Handler().postDelayed(new Runnable(){
public void run() {
txtOutput.setText("");
}
}, 10000);
}
也不要睡觉Ui线程(更多here)