بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
استاتیک کردن کلاس اپلیکیشن (G) و نشت حافظه
برای این سوال 1 پاسخ وجود دارد.

پاسخ به سوال
سجاد عباسی
7 سال پیش
+3
0
دلیلی برای نگرانی در این مورد نیست اندروید استودیو برای هر کانتکس استاتیک این وارنینگ رو میده که در مورد کانتکست اپلیکیشن جای نگرانی نیست چون یکی هست و در تمام مدت برنامه همون میمونه و باعث leak نمیشه. اما اگر context های دیگه ای مثل acitivty رو استاتیک کنید ممکنه مشکل پیش بیاد.
سلام ، اینکه گفتین "کانتکست اپلیکیشن یکی هست و در تمام مدت برنامه همون میمونه" ، مگه متغیرهای استاتیک دیگه ، تعدادشون به مرور زیاد میشه ؟ مثلا یه اکتیویتی باز میشه که دارای یک فیلد استاتیک هست . حالا اکتیویتی رو finish میکنیم ( که طبیعتا این متغیر استاتیک در حافظه باقی میمونه ) . دوباره که اکتیویتی باز میشه ، یعنی یک فیلد استاتیک دیگه غیر از قبلی به وجود میاد ؟ یا همون قبلی دوباره مقدار دهی میشه ؟ (7 سال پیش)
سلام همون قبلی میمونه و مقدار جدید نمیگیره این جایی مشکل ایجاد میکنه که توی اکتیویتی متغیر استاتیک از کانتکست اکتیویتی باشه و اکتیویتی finish بشه اینجوری تو اون متغیر static هست ولی دوباره همون اکتیویتی هم درست میشه اینجوری دو تا اکتیویتی تو حافظه هست و باعث leak میشه. ولی در مورد context application این مشکل پیش نمیاد. (7 سال پیش)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .