Android 弹出全局dialog

Android 8.0完美适配全局dialog 悬浮窗弹出 前言 最近项目targetSdkVersion升级到了26,出现很多问题趟了很多坑,其中就包括本篇的需要解决的问题:全局dialog 不显示。 出现场景 有时候我们需要在App中弹dialog,但是却不知道依附的是哪个Activity,这个时候通常会启动一个service来依附,显示一个全局的dialog。 Android 6.0出现的悬浮窗权限 为什么从6.0说起? 在A... 阅读详情

项目中需要在网络断开连接时设置全局弹出框提醒,要求当网络断开的时候,在app内的任一页面均能弹出提示框提示用户网络断开,开始认为dialog需要依附在Activity上,后经查询可采取悬浮窗的模式,使其不必依附于Activity,可在任一页面弹出,代码如下:

  AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
                    AlertDialog dialog=builder.setMessage("pc端断开连接,请及时保存编辑文档!")
                            .setPositiveButton("确定",new DialogInterface.OnClickListener(){
                                @Override
                                public void onClick(DialogInterface dialogInterface, int i) {
                                }
                            }).create();
                    dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
                    dialog.setCanceledOnTouchOutside(false);//点击屏幕不消失
                    if (!dialog.isShowing()){//此时提示框未显示
                        dialog.show();
                    }
需添加 dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);设置dialog的类型,同时要在清单文件中配置:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
添加该权限,若仍无法显示要到手机设置页面的,应用管理,找到自己的应用打开悬浮窗权限,若还是不行,可点击以下链接,寻找解决方法:

https://www.zhihu.com/question/37849134。

参考其他需要悬浮窗权限的app,都是默认不开启(测试机魅蓝note3),这就导致需要提醒用户设置,网上查阅资料,判断该权限是否开启,需要适配多种机型,极为不便,后经查询,可将dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);改为dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);,此时不需要悬浮窗权限开启,该全局提示框亦可弹出。

---------------------------分割线-------------------------------------------------------

使用dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);会遇到版本问题,在Android 4.4以下,TYPE_TOAST虽不需要权限亦可弹出,但是取消了界面交互功能,无法获取触摸事件,造成主动点击按钮,dialog不消失,因此需要版本判断,问题详情见以下链接:

http://www.jianshu.com/p/634cd056b90c



手把手教你自制Type-C OTG转换器(附电路图及避坑指南) 本文详细指导如何自制Type-C OTG转换器,包括核心电路设计、元器件选型及焊接技巧,特别强调硬件检测电路的关键作用。通过实测数据和避坑指南,帮助开发者解决兼容性问题,实现高效数据传输。 阅读详情

相关推荐

计算机组成原理(二)—— 数据的表示与运算

本章目录引言一、数制与编码1.1 进位计数制1.1.1 进制及转换1.1.2 真值、机器数1.2 BCD码1.3 ASCII 码1.4 校验码1.4.1 奇偶校验码1.4.2 海明码1.4.3 CRC循环冗余码二、定点数的表示和运算2.1 定点数的表示2.1.1 无符号2.1.2 有符号(原码、反码、补码、移码)2.2 定点数的运算2.2.1 移位运算2.2.2 加减运算(溢出判断)2.2.3 乘法运算2.2.4 除法运算2.3 强制类型转换2.4 数据的存储和排列三、浮点数的表示和运算3.1 浮点数的表示

S mile0804的博客 7473

android 系统全局弹框_Android 全局弹出版本更新 Dialog 思考和解决办法

Android 针对版本更新,需要做全局的弹出(需求:版本更新只需要在 App 内全局弹出就可以),思路是使用 AlertDialog ,然后设置 setType 为 TYPE_ALERT_WINDOW ,但是在国产设备上有些是无法弹出来的,需要用户到设置页面去设置,这种的操作难度会比较的大。参考文章:http://www.jcodecraeer.com/a/anzhuokaifa/android...

weixin_39841610的博客 1160

SAP ABAP干货:用REUSE_ALV_GRID_DISPLAY_LVC实现ALV多屏幕独立布局(含handle参数详解)

本文详细解析了SAP ABAP中如何使用REUSE_ALV_GRID_DISPLAY_LVC函数实现ALV多屏幕独立布局,重点介绍了handle参数的技术原理和实际应用。通过变式标识符和LTDX表存储机制,开发者可以确保不同ALV报表屏幕的布局设置互不干扰,提升复杂报表场景下的用户体验。

weixin_29268267的博客 309

android捕获全局异常lin,全局获取 (Activity)Context,实现全局弹出 Dialog

为什么需要一个全局的 (Activity)Context需求1:在进入 app 的时候,要求做版本检测,有新的版本的时候,弹出一个 AlertDialog,提示用户版本更新需求2:从别的设备挤下来的时候,不论当前 activity 是哪个,都能弹出来 AlertDialog(其实可以通过广播实现)需求3:服务器发来类似微信在电脑端登录的提示,弹出来确认 activity 。使用 Dialog 的时...

weixin_39587407的博客 526

二阶FLL辅助三阶PLL环路的代码解读

今天对GNSS接收机里面的载波跟踪环路代码进行了解读 以下是个人的一点见解 % 载波环第二步:环路滤波器 二阶FLL辅助三阶PLL环路 carrLoopS0 = lastCarrLoopS0 + (phaseErr*tau0PLL + freqErr*tau1FLL) * PDIcarr; carrLoopS1 = lastCarrLoopS1 + (tau1PLL*phaseErr + carrLoopS0 + tau2FLL*freqErr) * PD

LWN7321的博客 2629

[后端设计]innovus命令editPin详解?

先放命令,有空慢慢写。

m0_61003348的博客 5727

android 在任意activity弹提示框

相信大家经常也会遇到

jljforever的专栏 4069

TwinCAT3 实时核异步通信:基于ADS的C++ Server/Client数据交换实战解析

本文深入解析了在TwinCAT3实时核中,如何利用ADS协议实现C++ Server与Client之间的异步数据交换。文章从核心概念入手,详细阐述了实时核、ADS通信及异步机制,并通过实战步骤指导环境搭建、路由配置、Server端服务创建与Client端请求发起,重点剖析了Req/Ind/Res/Con异步回调模型,旨在帮助开发者构建高效、非阻塞的实时工业控制应用。

purple的博客 468

android 系统全局弹框_Android 全局弹窗(Dialog)快速实现

项目中 云信IM同一帐号,在多处登录时,要实现互踢功能。需求在收到被踢通知时,弹窗提示用户被踢,点击继续跳转到登录界面,取消则关闭App分析由于不知道用户会在哪个界面操作时被踢,接受通知的那个Activity有可能已经失去上下文,导致空指针异常!从而无法 Toast 或 弹窗。能实现 全局Dialog 就好了!实现的简单方式由于退出App的时候,要清除之前所有的Activity,其实就是退出登录功...

weixin_39796855的博客 2082

保姆级教程:用Seurat 5.0.1搞定单细胞测序数据从质控到细胞注释的全流程

本文提供了一份详细的Seurat 5.0.1单细胞测序数据分析教程,涵盖从数据质控到细胞注释的全流程。通过R代码示例和可视化分析,帮助用户掌握单细胞RNA测序数据处理的核心技术,包括数据标准化、降维聚类和细胞类型注释,适用于生物信息学研究和临床数据分析。

weixin_29067143的博客 195

OpenCompass实战:从零部署大模型评测平台,量化模型能力选型

在大模型技术选型与评估中,客观、可量化的评测体系是工程实践的关键。其核心原理在于通过标准化的数据集、统一的评测方法与自动化流程,将主观的模型体验转化为可比较的指标数据。这种评测框架的技术价值在于解决了模型能力评估的模糊性问题,为开发者提供了模型选型、效果对比与迭代优化的科学依据。典型的应用场景包括对比不同开源模型在代码生成、逻辑推理等特定任务上的性能,或是评估微调后模型在业务数据集上的提升效果。OpenCompass作为开源的大模型全能力评测平台,正是这一理念的工程化实现。它通过模块化的四层流水线架构和配置

weixin_28725037的博客 626

Android 全局Dialog

rocess: com.tseng.alldilaog, PID: 824 android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@7795399 -- permission denied for window type 2003 at an...

Android 工程化与移动架构实践 2107

FPGA新手避坑指南:手把手教你搞定RTL8211千兆网PHY的时序配置(附Verilog代码)

本文详细解析了FPGA与RTL8211千兆网PHY芯片的时序配置问题,重点介绍了TXDLY/RXDLY引脚设置、FPGA发送端和接收端的Verilog实现,以及调试与验证的完整流程。通过硬件电路设计和代码示例,帮助开发者解决网络连接不稳定、丢包等常见问题,提升千兆网通信的稳定性。

weixin_28732953的博客 539

Android菜鸟笔记-Service中弹出对话框,即全局性质Dialog不依赖于Activity

1.概述 有时候我们需要在Service中或者在桌面弹出一个Dialog,但创建弹出AlterDialog时会报错,这是因为AlterDialog的显示需要依附于一个确定的Activity类。为了实现这一功能我们需要设定这个AlterDialog为一个系统级警告提示框,即全局性质的提示框。只要手机处于开机状态,无论它现在处于何种界面之下,调用show(),都能弹出。下面以开机启动后如何弹出一个对

菜鸟笔记 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android在Service中弹出对话框(Dialog),即全局性对话框

先说具体做法,源代码在其后给出: 写好Alter功能块后,在alter.show()语句前加入: alert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 注:alter为AlertDialog类型对象 然后在AndroidManifest.xml中加入权限: 下面进行简单的解释: 如果只在

我是程序猿,我为自己代言 8783

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android在Service中弹出Dialog对话框,即全局性对话框

android在Service中弹出Dialog对话框,即全局性对话框 标签: androidAndroiddialogDialogserviceService 2012-12-07 10:49 24962人阅读 评论(9) 收藏 举报 本文章已收录于: 版权声明:本文为博主原创文章,未经博主允许不得转载。 先说具体做法,原因在其后

九九的博客 2310

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Android 全局弹出版本更新 Dialog 思考和解决办法

Android 针对版本更新,需要做全局的弹出(需求:版本更新只需要在 App 内全局弹出就可以),思路是使用 AlertDialog ,然后设置 setType 为 TYPE_ALERT_WINDOW ,但是在国产设备上有些是无法弹出来的,需要用户到设置页面去设置,这种的操作难度会比较的大。 参考文章:http://www.jcodecraeer.com/a/anzhuokaifa/a...

diaolapei9880的博客 618

Android Service 弹出系统全局Dialog

在Android Service中弹出全局Dialog对话框是一个很古老的问题。 很久之前解决过,但没有记录,今天遇到的时候又纠结了会儿。搜了下资料,千篇一律的解决方法无非是:dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 并增加权限<uses-permission android:name="a

Singleton1900的专栏 5903

Android 全局弹出框Dialog

全局弹出框: AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext(), R.style.Dialog_FS); final AlertDialog dialog = builder.create(); View view = View.inflat...

小哥丷的博客 727

安卓Android 不依赖于Activity 显示Dialog弹窗

2、此弹窗为仅当不依赖于Activity时,如何弹出AlertDialog,如需弹出更复杂的全局Dialog,需编写一个最定义的Dialog类继承于Dialog,此弹窗的显示方法如下,当想要展示弹窗时,只需要调用此方法:showCameraPrivacyDialog()1、使用自定义布局,首先创建自定义的布局文件,即xml文件,其中各种background可以参考。

m0_54198552的博客 709

qtreeview 点击二级节点弹出dialog_安卓开发之实现全局对话框(不用Dialog方式实现)...

前言:最近公司产品做版本更新时,提出了一个新的需求,内容就如标题所述,需要弹出全局的对话框来实现一部分功能。设计图如下请求连麦弹窗其实实现全局对话框的方式有多种:1、通过悬浮窗或者利用悬浮窗权限进行展示。2、有通过写一个BaseActivity然后所有的Activity都继承它在弹出“对话框”的。我再项目中应用的是第二种方式,一开始我觉得这个功能其实挺简单的,拿到设计图和具体功能需求后,...

weixin_39687542的博客 158

Android弹出全局dialog

1、场景 当一个下载任务失败时候,需要再任何页面弹窗提醒用户。 2、方案,制作一个dialog样式的activity,使用Application上下文启动。 3、代码实现 <activity android:name="beyondoversea.com.android.vidlike.activity.download.TaskErrorActivity" android:launchMode="singleTop" andro

qq_32898021的博客 422
上一篇: Android app图标在手机桌面显示过小
下一篇: Android 关于RelativeLayout.onMeasure出现的NullPointerException错误
解牛之术
博客等级 码龄11年 49粉丝 46原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值