方案一 :使用系統(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ì)詢問用戶是否授權(quá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)等本辐,但是這種類型的彈出框是不能接受事件處理的。