我正在构建一个短信应用程序,其中包含一个我希望发送到的数组中的电话号码列表。当我按下应用程序中的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);
}
这在语法上是正确的,但每当我尝试发送消息时,我的应用程序都会崩溃。有人可以指出我做错了吗?
非常感谢: - )