Тост, стоящий на экране больше минуты

// ---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();
 }
}

Это работает, но тост остается на экране более минуты. Он остается на экране даже после выхода из приложения. Я попытался изменить тост перед тем, как процесс отправит сообщения, но он закроет приложение. Это что-то, что мне понадобится, чтобы использовать хак, расположенный здесь: http://thinkandroid.wordpress.com/2010/02/19/indefinite-toast-hack/, чтобы сделать его короче?

1 ответ

  • Если вы одновременно назовете N * 1 сек. Тосты, они будут последовательно отображаться до ~ N секунд, как это происходит во внутреннем цикле. Здесь вы получаете amount * SHORT_DURATION общую продолжительность тостов.

  • Выполняйте проверку состояния if (amount < 100) перед входом в цикл. Это более корректно, эффективно и отображает только один тост.

licensed under cc by-sa 3.0 with attribution.