// ---sends an SMS message to another device---
private void sendSMS(String phoneNumber, String message) {
int i;
SmsManager sms = SmsManager.getDefault();
int amount = 10; // just making 10 the default if the EditText has an
// invalid value
try {
amount = Integer.parseInt(smsamount.getText().toString());
} catch (NumberFormatException smsamount) {
}
for (i = 0; i < amount; i++) {
if (amount < 100)
sms.sendTextMessage(phoneNumber, null, message, null, null);
else
Toast.makeText(getBaseContext(),
"Please enter an amount less than 100.",
Toast.LENGTH_SHORT).show();
}
}
这样可行,但吐司会在屏幕上停留超过一分钟。即使退出应用程序,它仍保留在屏幕上。我尝试在发送消息的过程之前更改toast,但强制关闭应用程序。这是我必须使用位于此处的黑客的内容:http://thinkandroid.wordpress.com/2010/02/19/indefinite-toast-hack/以缩短它?
答案 0 :(得分:6)
如果您一次调用N * 1秒Toasts,那么它们将按顺序显示最多~N秒,就像在您的内循环中一样。在这里,您可以获得amount * SHORT_DURATION
吐司的总持续时间。
在进入循环之前执行条件检查if (amount < 100)
。这样更正确,更有效,并且只显示一个Toast。