我正在尝试制作一个非常简单的应用程序。我想要做的是拥有一个可以向 1 个或多个收件人发送多条文本的应用程序。我已经完成了这个,但它似乎没有发送全部文本。
我认为问题是文本正在快速发送到。我试图让程序稍等片刻,但当我输入“Thread.sleep(1000);”时我收到一条错误消息,指出 Eclipse 中存在未处理的异常。有没有解决的办法?我真的需要为这几行代码做一个 try/catch 吗?如果我确实需要 try/catch,那么为此应用编写它的最佳方式是什么?
另外,请注意,我允许在以后的版本中自定义 sleep 时间,因此请在您的回复中牢记这一点。
Integer i = 0;
while (i < numTextSend)
{
sms.sendTextMessage(number, null, message, null, null);
Thread.sleep(1000);
i++;
}
[编辑] 更新代码:
final Button confirm = (Button) findViewById(R.id.confirm);
confirm.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//Grab values from UI
String number = String.valueOf(mNumber.getText().toString());
Integer numTextSend = Integer.parseInt(mNumTextSend.getText().toString());
String message = String.valueOf(mMessage.getText().toString());
//Send SMS message(s)
SmsManager sms = SmsManager.getDefault();
Integer i = 0;
while (i < numTextSend)
{
sms.sendTextMessage(number, null, message, null, null);
//Make App wait 1 second
i++;
}
}
});
最佳答案
您可以使用 handler 的 postDelayed()
延迟执行任何任务
示例代码
Handler h = new Handler();
Runnable r = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
SmsManager sms = SmsManager.getDefault();
Handler h = new Handler();
Runnable r = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(null, null, null, null,
null);
}
};
h.postDelayed(r, 1000);
}
};
关于java - 强制应用等待发送新短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9697690/