我有一个Fragment(来自支持库),其中包括一个MapView(来自 Google Maps API v2)。单击属于标记的信息窗口时,我想从Fragment包含切换MapView到另一个Fragment包含有关标记所代表地点的详细信息的窗口。为了切换,我使用以下代码:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.detach(oldFragment)
.add(R.id.fragment_container, newFragment, tag)
.addToBackStack(null)
.commit();
getSupportFragmentManager().executePendingTransactions();
问题是,单击信息窗口后,应用程序挂起。我能够通过调试器逐步完成,却发现最终原因是对Object.wait()由 触发的 Google Maps API v2 库内部的调用MapView.onPause(),我必须按照MapView文档调用它。
我也试图注释掉这个onPause()调用,但是另一个调用Object.wait()是由 Google Maps API v2 库中的另一个方法触发的,并且应用程序仍然挂起。我也尝试用一个整体MapFragment代替MapView,但没有任何改变。
我找不到任何有同样问题的人,所以我几乎迷路了。知道发生了什么,我做错了什么,以及我能做些什么来解决这个问题?