Juliana, parte de nuestro equipo de trabajo, nos ha hecho el favor de redactar este tutorial porque controla perfectamente el tema.
Si profundiza en el código de Android, puede encontrar las líneas que indican claramente que no podemos cambiar la duración del mensaje Toast.
NotificationManagerService.scheduleTimeoutLocked()
...
long delay = immediate ? 0 : (r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY);
y los valores predeterminados para la duración son
private static final int LONG_DELAY = 3500; // 3.5 seconds
private static final int SHORT_DELAY = 2000; // 2 seconds
los valores de LENGTH_SHORT
y LENGTH_LONG
son 0 y 1. Esto significa que se tratan como banderas en lugar de duraciones reales, por lo que no creo que sea posible establecer la duración en otros valores que no sean estos.
Si desea mostrar un mensaje al usuario durante más tiempo, considere una notificación de la barra de estado. Las notificaciones de la barra de estado se pueden cancelar mediante programación cuando ya no son relevantes.
Es posible que desee probar:
for (int i=0; i < 2; i++)
Toast.makeText(this, "blah", Toast.LENGTH_LONG).show();
para duplicar el tiempo. Si especifica 3 en lugar de 2, triplicará el tiempo, etc.
Recuerda mostrar este post si te fue útil.