programacion android time toast duration milliseconds

android - programacion - ¿Cuál es la duración de un Toast LENGTH_LONG y LENGTH_SHORT?



toast duration (4)

Necesito la duración exacta de LENGTH_LONG y LENGTH_SHORT en milisegundos (ms). También necesito saber si la duración del mensaje Toast con LENGTH_LONG tendrá la misma duración en cualquier teléfono y con cualquier versión de API.

¿Alguien sabe dónde se define la duración? Me refiero a la definición en ms. Sé que LENGTH_LONG es algo int const con valor 1. Pero no pude encontrar dónde se define la duración real.


A través del Toast.LENGTH_LONG prueba y error , he encontrado que Toast.LENGTH_LONG dura casi 2500ms


Aquí la fuente oficial de Android donde se definen estos indicadores :

public class NotificationManagerService extends SystemService { static final int LONG_DELAY = 3500; // 3.5 seconds static final int SHORT_DELAY = 2000; // 2 seconds private void scheduleTimeoutLocked(ToastRecord r){ mHandler.removeCallbacksAndMessages(r); Message m = Message.obtain(mHandler, MESSAGE_TIMEOUT, r); long delay = r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY; mHandler.sendMessageDelayed(m, delay); } }


Es cierto que no tenemos permitido cambiar la duración del Toast. Pero si está buscando una alternativa y realmente necesita hacer esto con un Toast, puede intentarlo.

Mantenga otra tostada duplicada en la línea siguiente

Ex:

Toast.makeText(this, "Hello ", Toast.LENGTH_LONG).show(); Toast.makeText(this, "Hello ", Toast.LENGTH_LONG).show();

El usuario no detectará ningún cambio en las transiciones entre 2 tostadas.

Gracias.


Respondido here . Como mencionaste Toast.LENGTH_SHORT y Toast.LENGTH_LONG no están en ms, sino en 0 o 1.

Las duraciones reales son:

private static final int LONG_DELAY = 3500; // 3.5 seconds private static final int SHORT_DELAY = 2000; // 2 seconds