首页 > 解决方案 > Android 当双击按钮开始另一个活动时,应用程序关闭而不会崩溃

问题描述

我的应用程序包含 2 个活动。

  1. 主要活动
  2. 测试活动

在 MainActivity 中有一个按钮,当单击该按钮时,会启动 TestActivity。应用程序的主题是“Theme.AppCompat.Light.Dialog”并使用此代码设置窗口大小。

window.apply{
            attributes.apply {
                width = 800
                height = 800
            }
            clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
            setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
        }

问题是,当我非常快速地多次单击该按钮时,我的应用程序将关闭而没有任何错误。

当我通过最近的应用程序回到应用程序时,我可以看到 TestActivity 打开。当我通过最近的应用程序进入应用程序时,按钮可以正常工作。此外,将应用程序主题设置为“Theme.AppCompat.Light.NoActionBar”,它也可以正常工作。

所以我试图通过几种方式避免双击,但没有什么不同。我的代码之一是这样的。

button.setOnClickListener {
            Log.d("TAG", "button clicked")
            if (SystemClock.elapsedRealtime() - mLastClickTime < 1000){
                return@setOnClickListener
            }
            mLastClickTime = SystemClock.elapsedRealtime()
            startActivity(Intent(this, TestActivity::class.java))
        }

“Theme.Appcompat.Dialog”有什么问题吗?

MainActivity 的生命周期在 onStop() 处停止,而不是在 onDestroy() 处。在调用 onStop() 之前,我可以看到日志。

W/libEGL:EGLNativeWindowType 0x7527b63010 断开连接失败

标签: androidkotlinandroid-activityandroid-buttonandroid-dialog

解决方案


推荐阅读