我在这里有点困惑。我的谷歌地图页面里面有一个带有片段的导航抽屉。他们的想法是点击一个标记,他们会看到一个按钮,将它们带到一个新的活动。
我想要的是让用户再次看到地图页面,如果他们通过主页按钮退出应用程序,并在他们返回应用程序时刷新它。那可能吗?
在活动中调用onStop();
确实会将我带回片段,但地图不会刷新。我在finish();
中调用了onStop();
,所以在后台方面,地图页面是最新的。
我是否有一种方法可以让我刷新地图?我有一个方法可以拉动标记,而不是在地图加载时。但当然这只需要回到原来的位置。我想调用refreshMap();
方法。
也许是一种欺骗性的方式。我在onCreateOptionsMenu中有一个刷新按钮,所以也许像onKeyDown这样强制后退按钮的东西,也许我们可以强制点击该按钮?猜猜这只是硬件按钮。
希望有人可以指导我正确的方向。刷新很重要,因为否则用户可以在几小时前点击过期的标记并仍然可以获得报价。
感谢您提供任何帮助,非常感谢!
答案 0 :(得分:0)
private static boolean homeClick = false;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_HOME)) {
homeClick = true;
}
return super.onKeyDown(keyCode, event);
}
检查是否已点击homeClick,如果是,则我们完成当前活动并返回到最后一个
确保第一个活动(带有地图的活动仍处于活动状态,如果没有在完成前做出意图()
@Override
protected void onResume() {
if (homeClick) {
homeClick = false;
finish();
}
super.onResume();
}
答案 1 :(得分:0)
我认为onResume()的工作方式适用于地图页面,我不应该刷新它。只是在他们去活动之前做一个检查,以确保它没有过期。我应该回到页面告诉他们它已经过期了。
只有在地图为空时才会刷新地图。如果我改变了,你再次使用应用程序就会陷入循环,因为onResume会调用它。