2013-01-18 12 views
5

Bazı parçaların çıkarılmaması nedeniyle bellek sızıntısı yaşıyorum. Fragman F1 ile görünümü dolduran Etkinliğim var. Bu parçanın, onunla ilişkili ViewPager ve FragmentStatePagerAdapter var. Adaptör başka bir Fragman F2 ile çağrı cihazı hissediyor. Sorun, Aktivitede I F1 Parçasını kaldırırken sorun çıkar. Mevcut Fragmanlar F2 kaldırılmaz.FragmentStatePagerAdapter, parent fragmanının kaldırılması durumunda parçaları çıkarmazsa

herhangi bir öneriniz var mı?

cevap

0

Bende aynı sorun var. F1 parçanızı bir aktiviteye geri döndürmeye çalışın. Bu, problemin bir parçada bir fragmana sahip olup olmadığını belirlemenize yardımcı olabilir. Android bundan hoşlanmıyor. Benim tarafımda bir şey bulursam, size bildireceğim

2

Aynı sorun olup olmadığından emin değilim, fakat bir süre önce parça yaşam döngüsü yöntemlerinin hiçbir zaman çağrılmadığı ve sorunun parça yöneticisi. Bu nedenle, bağdaştırıcıyı oluşturduğunuzda, supportFragmentManager yerine childFragmentManager öğesini geçirmeyi deneyin ve sorununuzu giderip gidermediğine bakın.

0

Burada aynı sorunla karşı karşıya kalıyordum. “Doğru” bir şekilde nasıl düzeltileceğiyle ilgili uzun bir süredir araştırdıktan sonra işe yaramadı. Bu yüzden, F1 ana parçasını (bir parça işlemi ile) etkinliğimden kaldırmadan önce tüm F2 parçalarını açık bir şekilde serbest bırakmak zorunda kaldım.

// Remove all content from the FragmentStatePagerAdapter instance. 
myAdapter.Content.Clear(); // Content here may be an ArrayList in Java or a List in C#. 
myAdapter.NotifyDataSetChanged(); 

// Reset current empty adapter inside the ViewPager (this will make all existing F2 fragments to be released). 
myViewPager.Adapter = myAdapter; 

// Do the transaction removing the parent F1 fragment from the main Activity. 
FragmentManager.BeginTransaction()... 

adımları takip ederek, tüm F2 fragmanları formu belleği serbest bırakılması başladı ve onlar da yaşıyorsanız onların OnPause, OnDestroyView ... OnDestroy geri aramalar yanı çağrı yapılmaktadır.

İlgili konular