Java中的循环周期延迟

时间:2016-07-22 08:27:08

标签: java android for-loop sms delay

我正在构建一个短信应用程序,其中包含一个我希望发送到的数组中的电话号码列表。当我按下应用程序中的SEND按钮时,我输入的消息将被发送到该数组中的所有数字。

我正在使用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 个答案:

没有答案