不用悬浮窗权限弹出全局dialog的解决方法
如何在application弹出一个全局的dialog?
思路一: 直接在application new dialog执行show方法.
问题,直接在application或服务中new dialog传入的context都是系统的context,需要申请悬浮窗权限,而安卓系统众多,比如小米vivo等,不同的手机申请悬浮窗权限的方式不同,检测是否有悬浮窗权限的方式也不同.导致需要维护很大一段代码来进行,不同手机不同安卓版本的悬浮窗权限的检测申请,我们需要做大量操作.
思路二:
直接在application中new dialog 但是我们在给他context的时候是给他的栈顶activity的context,这样就可以让dialog根据栈顶activity的context,那么谁在栈顶,就是谁弹出.
思路二正确答案解析:
1.在Application中创建dialog
DialogBuilder builder;//这里定义读者自己的dialog
//此方法在需要弹出全局唯一dialog时调用
if (builder != null && builder.isShowing()) {
} else {builder = new DialogBuilder(app_activity).setTitle("提示").setMessage(loginOutBus.getMsg()).setSimpleConfirmButton(com.zhiup.base.R.string.base_confirm, new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {RxBus.getInstance().send(new GoToLoginBus());}
});builder.show();
复制代码
2.获取栈顶activity实例
private Activity app_activity = null;//此声明定义在application中
//此方法定义在Application中并在onCreate中调用
private void initGlobeActivity() {registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {@Overridepublic void onActivityCreated(Activity activity, Bundle savedInstanceState) {app_activity = activity;Log.e("onActivityCreated===", app_activity + "");}@Overridepublic void onActivityDestroyed(Activity activity) {Log.e("onActivityDestroyed===", app_activity + "");}/** Unused implementation **/@Overridepublic void onActivityStarted(Activity activity) {app_activity = activity;Log.e("onActivityStarted===", app_activity + "");}@Overridepublic void onActivityResumed(Activity activity) {app_activity = activity;Log.e("onActivityResumed===", app_activity + "");}@Overridepublic void onActivityPaused(Activity activity) {Log.e("onActivityPaused===", app_activity + "");}@Overridepublic void onActivityStopped(Activity activity) {Log.e("onActivityStopped===", app_activity + "");}@Overridepublic void onActivitySaveInstanceState(Activity activity, Bundle outState) {}});}
复制代码
转载于:https://juejin.im/post/5b3484596fb9a00e315c3060
不用悬浮窗权限弹出全局dialog的解决方法相关推荐
- 关于U盘无法弹出的几种解决方法
U盘无法弹出的N种解决方法 [转自PChome.net] 大家是不是经常遇见"现在无法停止'通用卷'设备.请稍候再停止该设备."的问题?经常插上u盘,mp3,移动硬盘等设备,想要安 ...
- 关于浏览器拦截弹出窗口问题的解决方法
关于浏览器拦截弹出窗口问题的解决方法 正常对于浏览器新开窗口有三种方式 1.html里a标签的target属性 2.javascript的window.open()方法 3.html里form表单的t ...
- Android通知栏Notification弹出横幅显示的解决方法
Android通知栏Notification弹出横幅显示的解决方法 参考文章: (1)Android通知栏Notification弹出横幅显示的解决方法 (2)https://www.cnblogs. ...
- win7运行c语言程序,win7打开程序弹出错误0xc000005的解决方法
有很多win7旗舰版用户反馈,在打开一些程序时候会弹出错误0xc000005的提示导致程序无法打开,比如帝国时代3.穿越火线.三国志13等游戏程序,这究竟是怎么一回事呢?下面由系统城小编给大家介绍一下 ...
- 如何用计算机弹出ink sans,Win10系统按“W”键弹出INK工作区的解决方法-电脑自学网...
最近有使用Win10系统的用户反馈,只要不小心按照"W"键就会弹出INK工作区,因为不知道该如何解决而感到十分苦恼.对于这个问题,下面本文就为大家分享Win10系统按"W ...
- win10系统cmd模式下输入python弹出Windows应用商店 解决方法
win10系统cmd模式下输入python弹出Windows应用商店 解决方法 解决方法1: 打开环境变量设置[此电脑->属性->高级系统设置->环境变量] 在变量Path中发现有% ...
- 开机弹出“今日看点”和屏幕右下角弹出小广告的解决方法
<开机弹出"今日看点"和屏幕右下角弹出小广告的解决方法!> 最近几天,我家电脑屏幕右下角经常弹出广告窗口.<腾讯QQ>和<迅雷看看>弹出来的广告 ...
- Android调用系统群发短信,vivo部分手机弹出“无效的地址”解决方法
Android调用系统群发短信,vivo部分手机弹出"无效的地址"解决方法 第一次写文章,来试试水 之前项目中有一个需求是获取通讯录联系人信息,并展示出来,然后可以选择一个或者多个 ...
- win7系统无法开启共享服务器,win7系统启动共享服务弹出错误代码Ox80004005的解决方法...
很多小伙伴都遇到过win7系统启动共享服务弹出错误代码Ox80004005的困惑吧,一些朋友看过网上零散的win7系统启动共享服务弹出错误代码Ox80004005的处理方法,并没有完完全全明白win7 ...
最新文章
- Rust 1.31正式发布,首次引入Rust 2018新功能
- 网页设计中HTML常范的五个错误
- Python ' ~ ' (取反) 操作符解释
- php 半角,php 中全半角转换
- ionic4创建页面
- php系统如何连接数据库服务器,php如何连接数据库服务器
- Properties工具类
- 春晚魔术,醉翁之意不在酒
- JVM调优总结-调优方法
- 用英雄联盟的方式讲解 JavaScript 设计模式
- 视频图像传输与显示(2)——彩色模拟电视广播制式NTSC、PAL和SECAM
- 汽水分离再热器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- Python Interpreter
- 一款表达谱数据分析的神器--CCLE--转载
- 换个角度看“量子技术”,它离我们可能不再遥远
- Python利用数学方程式画4种不一样的心型图案
- 股票买到手想卖可以随时都能卖掉吗
- 适合计算机专业的电脑配置,设计师电脑配置,真的要好好看清单
- 高手怎么抓热点,每天几点操作?
- iOS Still Image Capture Using AVCaptureSession(使用AVCaptureSession获取静止Image)
热门文章
- 《数学建模:基于R》——2.2 方差分析
- cmake,gtest单元测试程序
- Nginx防盗链详细设置
- 安装WebDriverAgent时,执行bootstrap.sh脚本报错提示:ERROR in ./js/app.js的解决方法
- 用yacc编写的算术运算计算器_详细的mac计算器操作技巧+快捷键分享
- asp多表查询并显示_SpringBoot系列(五):SpringBoot整合Mybatis实现多表关联查询
- Windows命令远程执行工具Winexe
- 四轴飞行器实践教程(内部资料)
- 多少个没收到会收敛_做多少个俯卧撑算是合格?坚持做俯卧撑,会有什么变化?...
- php表格 单元格,如何更改PHPWord表格单元格高度?