2013-01-09 64 views
0

所以我有一個簡單的活動與下面的代碼:SupportMapFragment內存泄漏?

public class MainActivity extends FragmentActivity { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      SupportMapFragment fragment = (SupportMapFragment) getSupportFragmentManager().findFragmentByTag("tag"); 

      if(fragment == null) { 
       fragment = new SupportMapFragment(); 

       getSupportFragmentManager().beginTransaction() 
         .replace(android.R.id.content, fragment, "tag").commit(); 
      } 
     } 
    } 

當我繼續旋轉屏幕,我可以看到內存堆在DDMS增加。即使我做了幾次GC,內存也不會恢復到正常水平。我做錯了什麼,或者Google剛剛發佈了他們的新地圖api,並且發生了嚴重的內存泄露?

測試上的HTC Desire - 安卓2.2.2

編輯:也對三星galaxy S3測試 - 安卓4.1.2

編輯:沒有給OOM,但堆之前沒有倒下我在地圖上移動等。

+1

我偶然發現了同樣的問題,它似乎是一個真正的錯誤。 Google Maps Bug Tracker上的問題已經打開:http://code.google.com/p/gmaps-api-issues/issues/detail?id=4766 –

+1

現在在下一個版本中標記爲已修復。 – theblitz

+0

@theblitz真棒,感謝您的更新。 – Warpzit

回答

0

必須是不同的東西。我有一個地圖應用程序,它不這樣做 - 但我運行android 2.3.3(API 10+)

+0

我不是在談論地圖應用程序。我正在談論你自己用新的android maps api實現。 – Warpzit

+0

是的,我知道 - 我也不是在談論谷歌地圖。我寫了一個使用supportMapFragment的應用程序,我沒有看到任何內存泄漏。 – meredrica

+0

我剛剛在我的三星Galaxy S3上進行了測試,獲得了相同的結果。每次視圖重新加載(旋轉)時,堆緩慢增加,永遠不會再次回到合理的水平。 – Warpzit