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

来源:互联网 发布:局域网视频监控软件 编辑:程序博客网 时间:2024/05/18 00:01

最近又学了一些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也越来越多了,在原有基础上改动很大啊。


0 0
原创粉丝点击