【问题标题】:How to prevent parent activity of a dialog to show when opening new activity?如何防止在打开新活动时显示对话框的父活动?
【发布时间】:2014-01-23 08:35:17
【问题描述】:

只是我的问题是我有以下情况:

我有活动 A ...并且上面出现了一个自定义对话框..它很大但它不是一个活动它只是一个对话框..

单击该对话框中的某个项目会打开新的活动 B

点击对话框后..我需要关闭对话框并打开活动 B 发生的情况是 Activity A 出现一秒钟或更短的时间,然后 Activity B 打开..

我尝试在调用 startActivity() 后关闭对话框 .. 但 A 活动仍会在打开活动 B 之前短暂显示 ..

有什么建议吗?

【问题讨论】:

  • 如果您在活动 B 中按下返回按钮会发生什么?活动 A 是否应该在没有对话框的情况下显示?

标签: android dialog android-activity


【解决方案1】:

作为@user543 解决方案(也有效)的替代方案,您可以继续关闭对话框。从对话框启动新活动并单独保留对话框(或更好地为以后的对话框关闭保留一个标志),活动将立即出现在活动 A 的顶部,它是对话框。当用户单击返回按钮时,将调用 Activity A 的 onStart 和 onResume,因此请检查该标志并关闭那里的对话框

【讨论】:

    【解决方案2】:

    关闭 onStop() 中的对话框。因为在加载 Activity B 之后,只有 onStop() 会在 Activity A 中调用。

    定义一些布尔变量,例如:

    boolean isClicked=false;
    

    每当您在对话框中执行某些单击功能时,请将此变量设置为“true”。然后在 onStop() 中像这样检查:

    @Override
    protected void onStop() {
        super.onStop();
                if(isClicked)
                  {  
                     //dismiss dialog
                  }
    }
    

    【讨论】:

    • 好吧,如果用户打开对话框,手机屏幕因超时而熄灭,会发生什么?我想活动 A 的 onStop() 也会被调用,这反过来会关闭对话框,因此下次恢复应用程序时将没有对话框。应用可以接受吗?
    • 非常感谢我尝试了其他答案,两者都可以正常工作
    猜你喜欢
    • 1970-01-01
    • 2019-02-03
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    相关资源
    最近更新 更多