Java中循环周期的安卓延迟
我正在构建一个短信应用程序,其中包含一系列我想发送到的电话号码。当我按下应用程序中的“发送”按钮时,我键入的消息将发送到该数组中的所有数字
我使用for循环遍历这些数字,并向每个数字发送相同的消息:
for (i=0; i<names.length; i++) {
phoneNo = names[i][3];
sendMessage(phoneNo, message);
}
private void sendMessage(String phoneNo, String message) {
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, message, null, null);
Toast.makeText(getApplicationContext(), "SMS sent", Toast.LENGTH_LONG).show();
}
catch (Exception e) {
Toast.makeText(getApplicationContext(), "SMS failed. Please try again!", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
这非常有效,但现在,我想在发送每条消息之间引入一秒钟的延迟,所以我修改了for循环,如下所示:
Handler handler1 = new Handler();
for (i=0; i<names.length; i++) {
handler1.postDelayed(new Runnable() {
@Override
public void run() {
phoneNo = names[i][3];
sendMessage(phoneNo, message);
}
}, 1000);
}
这在语法上是正确的,但每当我现在试图发送消息时,我的应用程序就会崩溃。有人能指出我做错了什么吗
非常感谢:-)
共 (0) 个答案