android 广播弹窗,接收广播实现全局弹窗

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();

}

}

弹窗权限:

方法二:

正常弹出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文件中加入以下两句话:

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值