package com.camnter.newlife.utils.wrapper; import android.os.Handler; import android.os.Looper; import android.support.annotation.NonNull; import android.widget.Toast; /** * Description:SmartToastWrapper * Created by:CaMnter */ public abstract class SmartToastWrapper { private Toast toast; private final Handler handler; private final Runnable runnable; private static final int MAX_DURATION = 2222; protected SmartToastWrapper() { this.toast = this.getToast(); this.handler = new Handler(Looper.getMainLooper()); this.runnable = new Runnable() { @Override public void run() { if (toast == null) return; toast.cancel(); toast = null; } }; } public void show(@NonNull final CharSequence message) { if (this.toast == null) { this.toast = this.getToast(); } this.toast.setText(message); this.toast.show(); this.handler.removeCallbacks(this.runnable); this.handler.postDelayed(this.runnable, MAX_DURATION); } protected abstract Toast getToast(); }