【发布时间】:2016-06-17 11:53:48
【问题描述】:
我有重复任务的问题。
基本上,我正在开发服务,它会发送短信并检查一分钟的响应。如果收到响应,我会使用成功消息更新 textview,否则会失败。 我的发送短信服务工作正常,但我一直无法接收短信。 我打电话给发送短信并像这样检查短信:
sendSms("6617", "Test") // it works;
readSms.run() // it works too;
if (message.equals("desired sms"){ // it doesn't wait read sms to finish
updateTextView("Success");
}
else{
updateTextView("Fail");
}
这里是readSms:
Runnable readSms = new Runnable(){
receivedMessage = "";
@Override
public void run() {
try {
//..checking sms..//
if (smsreceived) {message=receivedMessage;}
} finally {
mHandler.postDelayed(readSms, mInterval);
}
}
};
如何让readSms 以 1 秒的间隔等待 60 秒超时。如果收到短信,我应该更新 textview 成功,如果没有,我会等到超时并设置 textview 失败。
【问题讨论】:
-
查看专为 Android 后台操作而设计的 AsyncTask
-
在线程内执行 Thread.sleep(1000*60)。这将使线程等待 60 秒的时间段,然后检查是否收到短信。
-
使用倒计时
标签: java android concurrency