2016-04-05 18 views
0

Bu sorunun birçok kez sorulduğunu biliyorum, ancak benim gibi birçok yeni geliştirici bunu zor buluyor. memory leaks'u önlemek için context kullanılmalıdır? yerde ben almalıyız possible.Also http://android-developers.blogspot.in/2009/01/avoiding-memory-leaks.html olarak context-activity kullanmayı deneyin getApplicationContext() ve yerde örHangi Bağlamda? Bellek Sızıntılarını önlemek için

için

Try using the context-application instead of a context-activity 

Hangi Bağlam RecyclerView Adapter geçmek veya Custom Dialog Class

Bir şekilde diyor bulundu bulduğum bağdaştırıcıyı bu şekilde bağdaştırmak için bu yolla

recyclerview.setAdapter(new YourAdapter(new WeakReference<Activity>(ActivityName).get())); 

Geçiş yolum doğru mu?

Lütfen başkalarının da faydalanabilmesi için ayrıntılı bir açıklama yapın. Teşekkür

cevap

2

Bağlam RecyclerView Adaptörü veya bir Özel Diyalog Sınıfı

UI endişeleri ile ilgili, her zaman Activity geçmek geçmek.

Geçiş yollarım doğru mu?

Bir RecyclerView kullanılmak üzere Activity bir WeakReference gerekmez.

Bellek sızıntılarını önlemek için hangi bağlamın kullanılması gerekir? Genel olarak cevaplanamaz. Bu, genel olarak cevaplandırılamaz. En basit temel kural şudur: Context'un static kapsamınınveri üyesi tarafından veya bir iş parçacığı gibi başvurulan bir nesnede olduğu gibi Context kapsamında tutulabileceğinden endişe duyduğunuzda Application kullanın. Aksi takdirde, daha odaklı bir Context kullanın (ör. Activity, Service).

Dave Smith's blog post on contexts Bulduğum konuyla ilgili en iyi tek sayfa kaynağıdır.

+0

Ancak zayıf bir bağlam kullanırsam sorun çıkarır mı? –

+0

@SonaliPawar: Sürekli olarak kilitler nedeniyle performansla ilgili bazı sorunlarınız olabilir. – CommonsWare

+0

Ya eğer ağ ile ilgili işleri yapmalıyım veya adaptörden diyalogları göstereyim, etkinlik ortamı uygun mu? –

İlgili konular