آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

استاتیک کردن کلاس اپلیکیشن (G) و نشت حافظه

احمد  6 سال پیش  6 سال پیش
0 0

استفاده از کلاس اپلیکیشن (G) استاتیک باعث نشت حافظه می شود آیا راه حلی برای این موضوع پیشنهاد میکنید.ممنون 

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
سجاد عباسی  6 سال پیش
+3 0

دلیلی برای نگرانی در این مورد نیست اندروید استودیو برای هر کانتکس استاتیک این وارنینگ رو میده که در مورد کانتکست اپلیکیشن جای نگرانی نیست چون یکی هست و در تمام مدت برنامه همون میمونه و باعث leak نمیشه.  اما اگر context های دیگه ای مثل acitivty رو استاتیک کنید ممکنه مشکل پیش بیاد.

 

+1 0
سلام ، اینکه گفتین "کانتکست اپلیکیشن یکی هست و در تمام مدت برنامه همون میمونه" ، مگه متغیرهای استاتیک دیگه ، تعدادشون به مرور زیاد میشه ؟ مثلا یه اکتیویتی باز میشه که دارای یک فیلد استاتیک هست . حالا اکتیویتی رو finish میکنیم ( که طبیعتا این متغیر استاتیک در حافظه باقی میمونه ) . دوباره که اکتیویتی باز میشه ، یعنی یک فیلد استاتیک دیگه غیر از قبلی به وجود میاد ؟ یا همون قبلی دوباره مقدار دهی میشه ؟ (6 سال پیش)
+1 0
سلام همون قبلی میمونه و مقدار جدید نمیگیره این جایی مشکل ایجاد میکنه که توی اکتیویتی متغیر استاتیک از کانتکست اکتیویتی باشه و اکتیویتی finish بشه اینجوری تو اون متغیر static هست ولی دوباره همون اکتیویتی هم درست میشه اینجوری دو تا اکتیویتی تو حافظه هست و باعث leak میشه. ولی در مورد context application این مشکل پیش نمیاد. (6 سال پیش)
+1 0
ممنون . کانتکست اکتیویتی منظورم نیست . منظورم متغیرهای استاتیک از انواع دیگه است . مثلا int یا double یا ArrayList . اینا چی ؟ اینا هم اگه اکتیویتی بسته بشه و دوباره باز بشه ، یکی دیگه درست میشه یا همون قبلی مقدار جدید میگیره ؟ (6 سال پیش)
+1 0
همون مقدار قبلی باقی میمونه تا وقتی برنامه تو حافظه هست متغیر های استاتیک باقی میمونن و وقتی برنامه به طور کامل بسته بشه متغیر ها هم از بین میرن. این متغیر ها حافظه کمی اشغال میکنن و فقط کانتکست هست که ممکنه باعث لیک بشه. (6 سال پیش)
+1 0
ممنون ، پس مشکلی نیست . اول اینطور برداشت کردم که هر بار که اکتیویتی ها اجرا میشن ، متغیرهای استاتیکش دوباره یه فضای جدید اشغال میکنن و همینطور این فضای اشغال شده بیشتر میشه در رفت و آمدهای متوالی . (6 سال پیش)
+1 0
نه فقط کانتکست های استاتیک غیر اپلیکیشن ممکنه باعث مشکل بشن. (6 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .