Android中Toast類

Toast類中這兩個變量的值爲:

 public static final int LENGTH_SHORT = 0;

 public static final int LENGTH_LONG = 1;

       在Android源碼中的NotificationManagerService.java這個類中定義了兩個靜態變量,分別對應Toast.LENGTH_LONG(3.5秒)和Toast.LENGTH_SHORT(2秒)的值

   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除了調用Toast 類中這兩個變量外,如果用數字,則1表示Toast.LENGTH_LONG,其他表示Toast.LENGTH_SHORT,顯示的時間只有3.5秒和2秒這兩種。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章