Dialog管理工具類

這是我的第一篇文章
作者:LiZuanxiao
微信:libi_520_com


2018年03月09日15:07:46
github更新了代碼實現(xiàn)方式 github


公司項目中大量用到了Dialog抓谴。有時,頻繁調(diào)用接口會出現(xiàn)Dialog反復(fù)彈出的情況苗膝。so衣吠,老大就交代了任務(wù):

  • 避免Dialog重復(fù)彈出
  • 在上一個Dialog消失500ms之間赋访,不能彈出潦闲,500ms之后挤悉,可以彈出新Dialog

就是這樣,我開始了一個Dialog工具類的開發(fā)泣刹。
上最終代碼吧

public class DialogMananger {
  private MDialog dialog;
  private Activity activity = null;
  //最好放到全局類中初始化
  private ActivityStack activityStack;
  private Handler handler;
  private boolean canShow = true;//500ms內(nèi)不允許重復(fù)顯示
  /**
   *
   */
  private int flag = -1;

  public static final class Builder {
    private DialogMananger manager;

    public Builder() {
      this.manager = new DialogMananger();
      this.manager.activityStack = new ActivityStack();
    }

    public Builder withDelay() {
      manager.handler = new Handler();
      return this;
    }

    public DialogMananger build() {
      return manager;
    }
  }

  private void dialogSingleton() {
    System.out.println("Dialog||反復(fù)調(diào)用");
    if (activity == null) {
      flag = 0;
      activity = activityStack.topActivity();
      dialog = new MDialog(activity);
    }
    if (activity.getClass().equals(activityStack.topActivity().getClass())) {
      flag = 1;
    } else {
      /**
       * 切換了頁面
       * dialog in OldActivity isShow?dismiss:continue
       * 置空activity
       * 遞歸
       */
      if (dialog.isShowing()) {
        dialog.dismiss();
      }
      dialog = null;
      activity = null;
      dialogSingleton();
    }
  }

  public void show() {
    dialogSingleton();
    switch (flag) {
      case -1:
        break;
      case 0:
        dialog.show();
        break;
      case 1://activity相同 if允許顯示
        if (!dialog.isShowing() && canShow) {
          dialog.show();
        }
        break;
    }
  }

  public void dismiss() {
    if (dialog == null || !dialog.isShowing()) return;

    dialog.dismiss();
    if (handler != null) {
      canShow = false;
      handler.postDelayed(new Runnable() {
        @Override
        public void run() {
          canShow = true;
          dialog = null;
          activity = null;
        }
      }, 500);
    }
    System.out.println("Dialog||消失被調(diào)用");
  }
}

其中MDialog就是一個普通的Dialog的繼承辈讶,可以看此處github

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末命浴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌生闲,老刑警劉巖媳溺,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異碍讯,居然都是意外死亡悬蔽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門捉兴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝎困,“玉大人,你說我怎么就攤上這事倍啥『坛耍” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵虽缕,是天一觀的道長始藕。 經(jīng)常有香客問我,道長氮趋,這世上最難降的妖魔是什么伍派? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮剩胁,結(jié)果婚禮上诉植,老公的妹妹穿的比我還像新娘。我一直安慰自己昵观,他們只是感情好倍踪,可當(dāng)我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著索昂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扩借。 梳的紋絲不亂的頭發(fā)上椒惨,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天,我揣著相機與錄音潮罪,去河邊找鬼康谆。 笑死,一個胖子當(dāng)著我的面吹牛嫉到,可吹牛的內(nèi)容都是我干的沃暗。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼何恶,長吁一口氣:“原來是場噩夢啊……” “哼孽锥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤惜辑,失蹤者是張志新(化名)和其女友劉穎唬涧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盛撑,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡碎节,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了抵卫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狮荔。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖介粘,靈堂內(nèi)的尸體忽然破棺而出殖氏,到底是詐尸還是另有隱情,我是刑警寧澤碗短,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布受葛,位于F島的核電站,受9級特大地震影響偎谁,放射性物質(zhì)發(fā)生泄漏总滩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一巡雨、第九天 我趴在偏房一處隱蔽的房頂上張望闰渔。 院中可真熱鬧,春花似錦铐望、人聲如沸冈涧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽督弓。三九已至,卻和暖如春乒验,著一層夾襖步出監(jiān)牢的瞬間愚隧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工锻全, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留狂塘,地道東北人。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓鳄厌,卻偏偏與公主長得像荞胡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子了嚎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,348評論 25 707
  • 雨天泪漂,小區(qū)處處是景。 花兒被雨水浸潤,顯得嬌艷動人窖梁。
    luola閱讀 201評論 0 0
  • 【上一篇】大秦帝國之稱霸西戎 人才是發(fā)展的動力赘风,是國家和民族未來發(fā)展的基石。人才凋零是國家不幸纵刘,輔佐秦穆公稱霸西戎...
    最愛肉丸子先生閱讀 754評論 0 3
  • 文字:雪人圖片:來自網(wǎng)絡(luò) 我從小在農(nóng)村長大邀窃,如果在求學(xué)這條路上能走出去,那我們這些農(nóng)村娃就逃離了苦海假哎。 不再每天重...
    霧都花兒閱讀 576評論 0 2