2018.6.2 AndroidStudio项目中的问题:===== oast.LENGTH_LONG和Toast.LENGTH_SHORT分别对应多长时间

oast.LENGTH_LONG和Toast.LENGTH_SHORT分别对应多长时间

在Android源码中的NotificationManagerService.java这个类中定义了两个静态变量,分别对应Toast.LENGTH_LONG(3.5秒)和Toast.LENGTH_SHORT(2秒)的值

Toast.LENGTH_SHORT大概显示时间为1秒,
Toast.LENGTH_LONG大概显示时间为3秒

private static final int LONG_DELAY = 3500; // 3.5 seconds

private static final int SHORT_DELAY = 2000; // 2 seconds

在下面的方法中进行了调用:

private void scheduleTimeoutLocked(ToastRecord r, boolean immediate)

{

    Message m =Message.obtain(mHandler, MESSAGE_TIMEOUT, r);

    long delay =immediate ? 0 :(r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY);

   mHandler.removeCallbacksAndMessages(r);

   mHandler.sendMessageDelayed(m, delay);

}

也就是说,Toast..makeText(Context context,CharSequence text, int duration).show() 中的duration只能设这两个值,其他值是没有用处的。

原文地址:https://www.cnblogs.com/qichunlin/p/9069620.html