首页 > 解决方案 > 谷歌地图关闭后开始活动

问题描述

在我的应用程序中,当单击按钮时,它使用以下代码将用户重定向到移动设备上的谷歌地图应用程序

 Uri gmmIntentUri = Uri.parse("google.navigation:q=" + a + "," + b);
                                    Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                                    mapIntent.setPackage("com.google.android.apps.maps");
                                    startActivity(mapIntent);

现在我想要的是当用户关闭谷歌地图/返回到我的应用程序时,它应该启动一个不同的活动,而不是它留下的那个。是否有可能做到这一点?我已经使用延迟来启动辅助活动,但它没有给出我需要的结果,因为有时它会在谷歌地图应用程序上运行。我对 Android 工作室完全陌生。

编辑- onSaveInstanceState 是克服此问题的一种可能方法吗?

标签: androidandroid-studioandroid-intentandroid-activityonsaveinstancestate

解决方案


谷歌文档中有一个方法:startActivities(Intent[] intents, Bundle options)

我个人以前从未使用过它,但似乎是您想要的。这是代码。我试过了,它奏效了。它在 Kotlin 中,但您可以用 Java 重新编写它。注意:确保将地图活动作为数组中的第二个开始。

val gmmIntentUri = Uri.parse("google.navigation:q=$a,$b")
        val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
        mapIntent.setPackage("com.google.android.apps.maps")
        val i = Intent(this, SecondActivity::class.java)
        val intents = arrayOf(i, mapIntent)
        startActivities(intents, null)

推荐阅读