簡體   English   中英

屏幕旋轉后在偵聽器中對活動的引用錯誤

[英]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示例

輪換之前:

  • MainApp @ 422fa1c0已創建MainApp
  • MainApp @ 422fa1c0設置新的onclicklistener
  • MainApp @ 422fa1c0請點擊

旋轉后:

  • MainApp @ 42b291f0已創建MainApp
  • MainApp @ 42b291f0設置新的onclicklistener
  • MainApp @ 422fa1c0請點擊

您是否需要更多代碼?

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM