onunix 2024-01-02 14:58 采纳率: 80%
浏览 1

请问关屏时执行了UI更新引起的异常问题

app正在显示一个进度条(dialog),如果按了电源键,屏幕关闭,app进入后台运行,然后任务完成,调用api隐藏进度条(dialog),之后,再按电源键,点亮屏幕,会发现app的进度条(dialog)还是在的,就是说,屏幕关闭时调用api隐藏进度条并未实现隐藏的目的,为了解决这个问题,需要在onResume中判断这个dialog还是否还显示着。

在activity里的onResume方法里面,怎么判断当前用户看到的是否这个进度条(dialog)? 或者说怎么得到最顶层的窗口是什么

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2024-01-02 15:09
    关注
    @Override
    protected void onResume() {
        super.onResume();
    
        // 获取WindowManager
        WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
    
        // 获取当前显示的窗口
        View topView = windowManager != null ? windowManager.getDecorView().getRootView() : null;
    
        // 判断最顶层的窗口是什么
        if (topView != null && topView.getContext() instanceof Activity) {
            Activity topActivity = (Activity) topView.getContext();
            if (topActivity == this) {
                // 当前Activity处于最顶层,可以进行相应操作
                // 判断进度条是否显示,并进行相应处理
            }
        }
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月2日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题