安卓谷歌地图的转向导航

8

我正在开发从当前位置到目的地的逐步导航。 我使用以下代码完成了这项工作:

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

问题在于,如果在屏幕1中点击返回按钮,会跳转到屏幕2。然后,如果我在屏幕2中点击返回按钮,会跳转到屏幕3、屏幕4,最终回到我的活动界面。
我想要的是,如果我在屏幕1中点击返回按钮,如何直接回到我的活动界面?如何通过在屏幕1中点击返回按钮来结束屏幕2、屏幕3、屏幕4?
屏幕1: enter image description here 屏幕2: enter image description here 屏幕3: enter image description here 屏幕4: enter image description here

这个?https://dev59.com/bW855IYBdhLWcg3w_5qm#4038637 - wf9a5m75
@selva_pollachi,你解决了这个问题吗?如果是的话,请分享你的代码。 - Satheesh
@Satheesh 不好意思,我还没有解决这个问题。你有什么解决方案吗? - selva_pollachi
1
@selva_pollachi 不是的 - Satheesh
3个回答

1
以下解决方案可能有效,但我不确定,请尝试使用以下方法。
在其清单条目中使用android:noHistory="true"启动屏幕2,3。
使用意图启动屏幕4。

请告诉我它是否有效,我会尽力解决这个问题。 - Rajan Bhavsar
谢谢。这些屏幕存在于库中,而不是我的应用程序中。 - selva_pollachi

0
将标志FLAG_ACTIVITY_PREVIOUS_IS_TOP设置为您的意图。
Uri gmmIntentUri = Uri.parse("google.navigation:q="+address);
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
mapIntent.setFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
startActivity(mapIntent);

来自Android文档:

如果设置了此参数,并且该意图用于从现有活动启动新活动,则当前活动将不会被计算为顶部活动,以决定是否将新意图传递到顶部而不是启动新活动。将使用先前的活动作为顶部活动,并假定当前活动将立即完成自身。


0

在编程中调用意图可以像这样:Screenshot2.class, Screenshot3.class

Intent in =new Intent(Screenshot2.this, Screenshot3.class);
                        finish();
                        startActivity(in);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接