所以在我的应用程序中,我有一个按钮来打开gmail,这样用户就可以检查验证码。
我使用这个代码来打开gmail。
val intent = Intent(Intent.ACTION_MAIN)
intent.addCategory(Intent.CATEGORY_APP_EMAIL)
try {
activity?.startActivity(intent)
} catch (e: Exception) {
activity?.let {
AlertDialog.Builder(it)
.setTitle("Email App Not Found")
.show()
}
}
它是伟大的工作启动gmail, 然而,我需要的是返回按钮 回到我的应用程序。
目前,当我从gmail点击返回按钮时,它会最小化我的应用程序,然后重新打开我的应用程序只是重新打开gmail,没有办法回到我的应用程序,而不完全关闭和重新打开它。
有什么方法可以覆盖返回按钮,从gmail回到我的应用程序?
所以在我的应用程序中,我有一个按钮来打开gmail,这样用户就可以检查验证码了。
你有一个结构错误的 Intent
打开电子邮件客户端。该 文件 特别指出,你如何使用 CATEGORY_APP_EMAIL
是不正确的。
注:这不应该作为主键使用。
Intent
,因为它不会导致应用以正确的动作和类别启动。相反,请将其与makeMainSelectorActivity(java.lang.String,java.lang.String)
来生成一个在选择器中包含该类别的主意图。
如果您试图启动与启动器相同的活动,您将需要一个包含该类别的 ACTION_MAIN
CATEGORY_LAUNCHER
Intent
,有一个选择器 Intent
试图将选择限制在电子邮件应用程序上。
有没有办法覆盖返回按钮,从gmail回到我的应用程序?
一般来说没有。应用程序如何响应系统BACK按钮是由该应用程序的开发者决定的。有可能是解决 Intent
问题将改善这一行为作为一个副作用。
我给你的代码试了一下,它在模拟器Pixel 2上工作。所以,有几件事你可以检查一下。
第一,看看你是否有一些代码调用了类似于 finish()
从后堆栈中清除这个活动,特别是在 onPause()
和 onStop()
.
第二个检查你是否启用了 Don't Keep activities
在设备的开发者选项中... 这将在进入Gmail之前破坏当前的活动,这样你就无法返回。