Android 全局彈出對(duì)話框

方案一 :使用系統(tǒng)彈窗權(quán)限

1.1 .先加權(quán)限

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

1.2 創(chuàng)建alertDialog時(shí)候設(shè)置類型為

        alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

缺點(diǎn):

  • 用戶在安裝應(yīng)用時(shí)會(huì)詢問(wèn)用戶是否授權(quán)問(wèn)題
  • 同時(shí)在小米手機(jī)上默認(rèn)是禁止系統(tǒng)彈出框的,應(yīng)用中的系統(tǒng)彈出框?qū)⒉荒軌驈棾?/li>

方案二:彈個(gè)Activity替代

2.1 設(shè)置Activity主題@android:style/Theme.Dialog
2.2 startActivity時(shí)要添加額外標(biāo)志ntent.FLAG_ACTIVITY_NEW_TASK:

Intent i=new Intent(this,ActDialog.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);//把a(bǔ)ctivity做的像一個(gè)Dialog的風(fēng)格

方案三:自定義toast

3.1 還用dialog且將彈出Window type 改為L(zhǎng)ayoutParams.TYPE_TOAST,但是這種類型的彈出框是不能接受事件處理的。

3.2 直接繼承toast,重寫布局時(shí)長(zhǎng)等,但是這種類型的彈出框是不能接受事件處理的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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