接收廣播實現(xiàn)全局彈窗

Android TV開發(fā)過程中通過接收開機廣播等實現(xiàn)各種提示彈窗的需求非常多,當然也可以是其他任何廣播,任何詭異的需求,你懂的...

以下內(nèi)容僅是個人開發(fā)經(jīng)驗,歡迎指正~*

  • 方法一:
public class LoginBroadCastReceiver extends BroadcastReceiver{
 
    @Override
    public void onReceive(final Context context, Intent intent){
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setTitle("下線通知");
        builder.setMessage("你的賬號在其他地方登錄!");
        builder.setCancelable(false);
        builder.setPositiveButton("重新登錄", new DialogInterface.OnClickListener()
        {
            @Override 
            public void onClick(DialogInterface dialog, int which){
                ActivityCollector.finishAll();
                Intent intent = new Intent(context, LoginActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //在廣播接受者中啟動活動需要添加這個標志
                context.startActivity(intent);
            }
        });
        AlertDialog dialog = builder.create();
        dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); //需要設(shè)置AlertDialog的類型,保證在廣播接收者中可以正常彈出
        dialog.show();
    }
}

彈窗權(quán)限:

<uses-permissionandroid:name="android.permission.SYSTEM_ALERT_WINDOW" />
  • 方法二:
    正常彈出AlertDialog的流程如下:
new AlertDialog.Builder(context).setTitle("在BroadcastReceiver里彈出AlertDialog").show();

但是其實AlertDialog似乎只能在activity中彈出為了解決在BroadcastReceiver里彈出AlertDialog這個問題,我們可以這樣做:

AlertDialog alertDialog=new AlertDialog.Builder(context).create();
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();

需要注意的時候,最后還要在androidManifest.xml文件中加入以下兩句話:

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

謹以作為開發(fā)記錄,如果有幫到您,記得點贊哦

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容