Her seferinde onResume'da olusturup onPause'da silmek yerine, bu Bitmap objesini bir kere olusturup sonrasinda yeni olusturacagin bir classin static objesi yaparsan hem surekli olusturmana gerek kalmaz hem uygulamanin her yerinden hizli bir sekilde erisme imkanin olur hem de bu resmi ne kadar cok yerde kullanirsan kullan memoryde toplamda sadece 1 bitmap tutmus olursun.

Her seferinde onResume'da olusturup onPause'da silmek yerine, bu Bitmap objesini bir kere olusturup sonrasinda yeni olusturacagin bir classin static objesi yaparsan hem surekli olusturmana gerek kalmaz hem uygulamanin her yerinden hizli bir sekilde erisme imkanin olur hem de bu resmi ne kadar cok yerde kullanirsan kullan memoryde toplamda sadece 1 bitmap tutmus olursun. Hocam benim temel problemim o 1 bitmapi bile bellekde tutmak istememem. yani free yapmak istiyorum. havalı bir şeyler yazdığımı hayal edin

Merhaba hocalar, Kendi çapımda uğraşıyorum, mobil programlamayla. Çok basit bir sorunum var ama bir türlü çzemedim. Şimdi uygulamanın layout unun background una bir bitmap veriyorum. Sonra uygulama yeni intent e geçtiği zaman, geçtiğimiz intent in arkaplanındaki bitmapini silmek istiyorum ki bellekte yer kaplamasın. Uygulama onResume ile arkaplan fotoğraf ını oluştururken, onPause ilede silmesini bekliyorum. bunun için onPause da, bitmap i recycle ediyor ve null yapıyorum. Ancak bitmap i silmiyor. ve onResume ile bitmap oluşturulduğu için.. sonraki intent e gidip geri gelince uygulamada bellek iyice şişiyor. onPause içinde layout. removeAllViews falanda denedim ama işe yaramıyor. havalı bir şeyler yazdığımı hayal edin

1 Fragment kullanıyorsan üst üste gelecek Fragmentler ve arka planda bekletilen kodlar yüzünden belleğin şişebilir. Sebebi Recursive function. Arka planda bir Fragmentler bazen birbirine bağlı oalbiliyor keza Activityler de. Yani sen bir activity acıp o activity bitiminden Destroy olduktan sonra dnen değeri bekliyorsan bir ncekinde. Arkada bir Recusive çalışır. Fragment acarken kapatırken vs sürekli boş fragmentleri yakalamalısın. Ek olarak MainThread üzerinde birden cok Thread var ise buda belleğini şişirir. 1 tane bitmap senin uygulamanı cok fazla belleğe tecavüz etmez. He diyorsan bir android cihaz üzerinde rneğin 2.2 yüklü 256 mb ram'i olan bir cihazda çalıştırıyorum haliyle ldürüyor. android garbage collection araştırmalısın ki Saçma sapan çerezleri silesin Bitmap değerini de null yap collect işleminden nce bu sefer ram'ini iyi kullanmış olursun. @manyaki hocam zaten sylemiş sana Manifest'i düzenleyerek yap derim uğraşmana gerek yok.. Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Hocam merhaba. Manifest içinde android:largeHeap="true" ekleyip dener misin? edit: verdiğim çzüm bitmap i silmek için değil de, outOfMemory hatası almanı engellemek içindir. Hocam onu yapmak istemiyorum işte :) memory i düzenlemek istiyorum yoksa çok baş ağrıtacak gibi havalı bir şeyler yazdığımı hayal edin

Hocam merhaba. Manifest içinde android:largeHeap="true" ekleyip dener misin? edit: verdiğim çzüm bitmap i silmek için değil de, outOfMemory hatası almanı engellemek içindir. manyaki tarafından 29/Kas/16 12:21 tarihinde düzenlenmiştir since 2005 // tbt

BerkayCit bunu yazdı Tawe bunu yazdı Her seferinde onResume'da olusturup onPause'da silmek yerine, bu Bitmap objesini bir kere olusturup sonrasinda yeni olusturacagin bir classin static objesi yaparsan hem surekli olusturmana gerek kalmaz hem uygulamanin her yerinden hizli bir sekilde erisme imkanin olur hem de bu resmi ne kadar cok yerde kullanirsan kullan memoryde toplamda sadece 1 bitmap tutmus olursun. Hocam benim temel problemim o 1 bitmapi bile bellekde tutmak istememem. yani free yapmak istiyorum. peki yeni bir activity baslatirken oncekini finish fonksiyonuyla bitiriyor musun? ya da yeni activity'ni startActivityForResult fonksiyonuyla baslatip isin bitince geri ayni activity'e dondugune emin misin? kullandigin bitmapin boyutunu bilmiyorum fakat 1 tane bitmapin memory sismesine sebep olacagini sanmiyorum. isi biten fakat finish yapilmamis activityler androidde memory sismesinin en buyuk sebeplerinden biridir. cunku arkaplanda calisan activityler kendi tuttugu resimlerin, objelerin garbage collector tarafindan temizlenmesini engeller. hayır hocam finish yapmıyordum activity i. startActivityForResult ı da kullanmadım. ama finish i denedim.. direk olarak memory monitor de bir değişim yok. garbage collector sonradan siler mi bilmiyorum? @MhmdAlmz anladım hocam. havalı bir şeyler yazdığımı hayal edin

Tawe bunu yazdı Her seferinde onResume'da olusturup onPause'da silmek yerine, bu Bitmap objesini bir kere olusturup sonrasinda yeni olusturacagin bir classin static objesi yaparsan hem surekli olusturmana gerek kalmaz hem uygulamanin her yerinden hizli bir sekilde erisme imkanin olur hem de bu resmi ne kadar cok yerde kullanirsan kullan memoryde toplamda sadece 1 bitmap tutmus olursun. Hocam benim temel problemim o 1 bitmapi bile bellekde tutmak istememem. yani free yapmak istiyorum. peki yeni bir activity baslatirken oncekini finish fonksiyonuyla bitiriyor musun? ya da yeni activity'ni startActivityForResult fonksiyonuyla baslatip isin bitince geri ayni activity'e dondugune emin misin? kullandigin bitmapin boyutunu bilmiyorum fakat 1 tane bitmapin memory sismesine sebep olacagini sanmiyorum. isi biten fakat finish yapilmamis activityler androidde memory sismesinin en buyuk sebeplerinden biridir. cunku arkaplanda calisan activityler kendi tuttugu resimlerin, objelerin garbage collector tarafindan temizlenmesini engeller.