当前位置:首页 » 安卓系统 » android判断dialog

android判断dialog

发布时间: 2023-02-20 23:21:29

① Android如何判断当前窗口是Activity还是Dialog

Activity是Android四大组件之一,而Dialog不是Android的组件,Activity用于实现一个功能性窗口,而Dialog用于做出一些提示及一些选择性操作,两者应用的场景是不同的。

在程序中把这个窗口对象获取到,通过instanceof来判断这是对象是归属于Activity还是Dialog.

② Android 全局弹窗(Dialog)快速实现

项目中 云信IM同一帐号,在多处登录时,要实现互踢功能。

在收到被踢通知时,弹窗提示用户被踢,点击继续跳转到登录界面,取消则关闭App

由于不知道用户会在哪个界面操作时被踢,接受通知的那个Activity有可能已经失去上下文,导致空指针异常!从而无法 Toast 或 弹窗。

能实现 全局Dialog 就好了!

由于退出App的时候,要清除之前所有的Activity,其实就是退出登录功能。

我采用 集合法 来实现的退出登录 ,在BaseActivity中记录所有打开过的Activity,然后遍历清除。

然后在 BaseActivity 中调用 addActivity() ,不在赘述!

如果能获取到用户当前观看的界面,然后将上下文传过去,就可以实现全局Dialog

当前页面也就是栈顶Activity,也就是最后添加的那个Activity。如下:

然后在使用的地方获取

即:

注意:之所以返回AppCompatActivity,而不是Activity,
是因为弹出Dialog 需要 supportFragmentManager ,Activity 获取不到

以上就可以实现全局Dialog了。

另外,上述Dialog是用DialogFragment写的,感兴趣可阅 《DialogFragment 去除内容区棱角背景(不规则圆角)》 ,附有工具类及用法。

③ Android如何获取当前窗口的对象判断它是Activity的类对象还是Dialog的类对象

您说具体点,什么情况下获取当前窗口的对象。
如果是在一个activity里获取dialog弹出来没有就是if(dialog!=null&&dialog.isshowing){//就是当前窗口是dialog界面 dialog.this就是当前窗口对象}
eles{//是当前activity 为窗口对象, activity.this}

热点内容
磁盘服务器如何管理磁盘 发布:2025-07-12 21:02:19 浏览:470
安卓返回键在哪里取消 发布:2025-07-12 20:50:17 浏览:799
对比价格的插件或脚本 发布:2025-07-12 20:49:34 浏览:184
android底部抽屉 发布:2025-07-12 20:40:40 浏览:318
php变量括号 发布:2025-07-12 20:40:36 浏览:176
服务器防火墙ip访问限制 发布:2025-07-12 20:35:36 浏览:197
强连通分量算法 发布:2025-07-12 20:12:40 浏览:611
河南科技大学期末编译原理试题 发布:2025-07-12 19:53:17 浏览:46
电脑中的微信聊天记录在哪里存储 发布:2025-07-12 19:47:22 浏览:944
苹果6sp怎么设置密码 发布:2025-07-12 19:28:50 浏览:547