[英]Wrong reference to Activity in listener after screen rotation
我的Google Maps Api有問題。 旋轉屏幕后,我對活動有錯誤/舊的引用。 我“正在使用” mMapFragment.setRetainInstance(true);“。” pact“是活動。日志記錄為我提供了活動的hascode,但它們並不相同(看例子)。
private void setUpMapIfNeeded() {
if (map != null) {
Log.d(H.TAG, "setUpMapifNeeded" );
Log.d(H.TAG, pact.toString() + " set new onclicklistener");
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener(){
@Override
public void onInfoWindowClick(Marker marker) {
Log.d(H.TAG, pact.toString() + " click");
}
});
}
}
Loggin示例
輪換之前:
旋轉后:
您是否需要更多代碼?
onRetainInstance保留Fragment實例,而不保留Activity。 您需要將“活動”引用更新為傳遞給您的
onAttach(Activity)
好吧,我知道了,答案是改變線
fragmentTransaction.add(R.id.map_container, mMapFragment);
至
fragmentTransaction.replace(R.id.map_container, mMapFragment);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.