android 通过广播来弹出dialog(在小米上会一闪而过的原因)

最近又学了一些android 的基础知识广播,之前因为一直没有用到所以就没怎么重视,在接触一些大牛们的项目源码后,发现广播确是蛮有用的。

于是自己就翻阅了几本书和几个相关视频,仿照着写了一个基本功能的测试app,功能大致是点击一个界面上的按钮会发送一个广播,在xml文件中已经事先注册了一个广播接收者,那个接收者的 

onReceive方法中有一个启动dialog的方法:
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
        dialogBuilder.setTitle("Warning");
        dialogBuilder.setMessage("test this app by my");
        dialogBuilder.setCancelable(false);
        dialogBuilder.setPositiveButton("OK",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Intent intent = new Intent(context,
                                Otherclass.class);
                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        context.startActivity(intent); 
                    }
                });
        AlertDialog alertDialog = dialogBuilder.create();
        alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
        alertDialog.show();
这样会启动一个dialog,但是我在6.0的手机测试中报错,我想又是权限问题,
if (Build.VERSION.SDK_INT >= 23) {
    if(!Settings.canDrawOverlays(context)) {
        Intent intent2 = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
        intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent2);
        return;
    } else {
        //绘ui代码, 这里说明6.0系统已经有权限了
        jieguo(context);
    }
} else {
    //绘ui代码,这里android6.0以下的系统直接绘出即可
    jieguo(context);
}
照着之前的摄像头的动态权限申请方法我试了一下,可以了。
	本来到这里算是结束了,但是我还有一个红米手机,于是我手贱试了一下,哎倒是出现了一个框,但是马上消失,可以说是一闪而过。
我郁闷了,难道代码有问题,不能啊,我分别在Nexus5x 6.0模拟机,4.4 杂牌酷派  4.4锤子上都可以运行啊。这个问题我足足测了两个消失,
找了网上的也没有什么人碰到过,更不用说给解决方法了,后来我想是不是小米系统给我限制了?,我进入到app的权限界面果然有一个弹出框限制。
这个坑人的东西,也不说明一个,也不自己弹个框出来警告一下我,这样我怎么知道啊。哎,反正最后是成功解决了。
	现在市面上andorid厂家越来越多,定制的android也越来越多了,在原有基础上改动很大啊。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值