美文网首页
接收广播实现全局弹窗

接收广播实现全局弹窗

作者: Smart_Arvin | 来源:发表于2016-11-05 21:32 被阅读959次

Android TV开发过程中通过接收开机广播等实现各种提示弹窗的需求非常多,当然也可以是其他任何广播,任何诡异的需求,你懂的...

以下内容仅是个人开发经验,欢迎指正~*

  • 方法一:
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); //需要设置AlertDialog的类型,保证在广播接收者中可以正常弹出
        dialog.show();
    }
}

弹窗权限:

<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"/>

谨以作为开发记录,如果有帮到您,记得点赞哦

相关文章

  • 接收广播实现全局弹窗

    Android TV开发过程中通过接收开机广播等实现各种提示弹窗的需求非常多,当然也可以是其他任何广播,任何诡异的...

  • Android四大组件——BroadcastReceiver(基

    概述 BroadcastReceiver广播接收者,本质是一个全局的监听器,可以监听到各种广播,可以用来实现不同组...

  • android网络监听学习笔记

    网络变化android自带广播、采用广播接收器接收网络变化的监听 自定义广播接收 为了方便全局监听在baseact...

  • Android 经典笔记七 全局弹窗Dialog

    目录介绍 1.全局弹窗分析 2.全局弹窗必要条件 3.全局弹窗实现方式3.1. 利用系统弹出dialog3.2....

  • 8.3 BroadcastReceiver2

    全局广播:APP发出的广播,其他APP都会接收到,同样会接收到其他App发出的广播。 本地广播:发出的广播只会在A...

  • Android广播接收者_笔记

    广播接收者的分类,两种分法: 一、分为全局广播和本地广播 二、分为有序广播和无序广播 广播接收者的注册,动态注册和...

  • 第一行代码

    —— 广播机制 纲要 广播简介 广播接收动态注册静态注册 广播发送标准广播有序广播 本地广播 最佳实践 简介-全局...

  • Android广播接收器(三)

    本地广播 前面两篇文章Android广播接收器(一)和Android广播接收器(二)讲的都属于全局广播,即发出的广...

  • 第二卷 Broadcast Receiver

    2.1全局广播 2.1.1广播类型 标准广播是一种异步广播,在广播发出后,所有的广播接收器几乎在同一时刻接收到这条...

  • Android广播基础概念

    定义 广播:是一个全局的监听器 分为两个角色:广播发送者、广播接收者 作用 监听/接收应用App发出的广播消息,并...

网友评论

      本文标题:接收广播实现全局弹窗

      本文链接:https://www.haomeiwen.com/subject/nbeguttx.html