sleep() 与 Android 上的网络任务相结合的问题
Problems with sleep() in combination with a network task on Android
我需要执行一个下载任务,该任务发出一个字符串,我在文本视图中显示该字符串。这与 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 秒直到输出显示才开始。
我的问题是从未显示输出。
/编辑:我调整了字符串比较
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
protected void onPostExecute(String result) {
txtOutput.setText(result);
try {
Thread.sleep(10000);
}catch(Exception e) { }
txtOutput.setText("");
}
试试这个代码。
要比较字符串,您需要使用 equals()
方法而不是 ==
。你也可以使用 isEmpty()
所以试试
protected void onPostExecute(String result) {
txtOutput.setText(result);
new Handler().postDelayed(new Runnable(){
public void run() {
txtOutput.setText("");
}
}, 10000);
}
也不要休眠 Ui 线程(更多 here)
我需要执行一个下载任务,该任务发出一个字符串,我在文本视图中显示该字符串。这与 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 秒直到输出显示才开始。
我的问题是从未显示输出。
/编辑:我调整了字符串比较
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
protected void onPostExecute(String result) {
txtOutput.setText(result);
try {
Thread.sleep(10000);
}catch(Exception e) { }
txtOutput.setText("");
}
试试这个代码。
要比较字符串,您需要使用 equals()
方法而不是 ==
。你也可以使用 isEmpty()
所以试试
protected void onPostExecute(String result) {
txtOutput.setText(result);
new Handler().postDelayed(new Runnable(){
public void run() {
txtOutput.setText("");
}
}, 10000);
}
也不要休眠 Ui 线程(更多 here)