烤面包停留在屏幕上超过一分钟

时间:2011-11-17 16:32:32

标签: android

// ---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/以缩短它?

1 个答案:

答案 0 :(得分:6)

  1. 如果您一次调用N * 1秒Toasts,那么它们将按顺序显示最多~N秒,就像在您的内循环中一样。在这里,您可以获得amount * SHORT_DURATION吐司的总持续时间。

  2. 在进入循环之前执行条件检查if (amount < 100)。这样更正确,更有效,并且只显示一个Toast。