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只能設這兩個值,其他值是沒有用處的。