본문 바로가기
🖥 Programming/📱 Android (Java)

[Android] 토스트 메시지(Toast Message) 중복 생성 방지

by MinChan-Youn 2021. 10. 14.

이번에는 토스트 메시지(Toast Message) 중복 생성 방지에 대해서 알아보겠습니다.

 

결론은 토스트메세지를 계속 생성을하여 중복처럼 중첩이 되는 현상을 막는 것입니다.

그렇지 않으면 토스트메세지가 쌓여서 계속해서 보여지는 현상을 접할지도 모릅니다.

 

public static Toast mToast;
public static void showToast(final String message) {
  Runnable r = new Runnable() {
    @Override
    public void run() {
      if (mToast != null)
      mToast.cancel();
      mToast = Toast.makeText(AppDelegate.getGlobalApplicationContext(), message, Toast.LENGTH_SHORT);
      mToast.show();
    }
  };
  runOnMainUi(r);
}

public static void runOnMainUi(Runnable action) {
  if (Looper.myLooper() == Looper.getMainLooper()) {
	  action.run();
  } else {
	  new Handler(Looper.getMainLooper()).post(action);
  }
}

여기서 토스트메세지 보여지는 시간은

1. Toast.LENGTH_LONG: 3.5초

2. Toast.LENGTH_SHORT: 2초

위와 같으니 시간을 잘 판단하여 사용하면 되겠습니다.