۲ محمدصادق صرافیان
instance از کلاس main activity
جامعه جاوا (اندروید) ایجاد شده در ۱۲ اردیبهشت ۱۳۹۹

استاد سلام و خسته نباشید ، 

در متد makeText گفتید که باید یک نمونه از کلاس context رو به عنوان پارامتر بدیم، که به جاش یک نمونه از mainactivity  می‌دیم . حالا می‌خواستم بدونم وقتی کلاس main activity سنگین بشه (که گفتید کلاس اصلی هر پروژه هست)، وقتی توی هر متد makeText یک نمونه از کلاس mainactivity بسازیم، حافظه زیادی رو اشغال نمی‌کنه ؟ 

درست متوجه شده ام؟

سلام محمد وقت بخیر

حقیقت اینجاست اول متد makeText یک متد استاتیک هست و نیاز به اینستنس گرفتن از Toast نیست 

اما سوال شما .

وقتی شما به عنوان پارامتر اول این متد this رو پاس میدین (اگر در فرگمنت باشید getcontext()) در واقع دارین مقداره اون اکتیویتی رو میدین (به عبارتی هر دفعه MainActivity رو initilize نمیکنین)  به پارامتر مربوطه.

پس نگران حافظه نباشید .

و کلا این رو هم بگم شما هر شی رو میسازید وقتی که دیگه اپلیکیشن کارش تموم بشه با اون شی توسط زباله روب جاوا(گاربج) از بین میره تا حافظه الکی اشغال نشه.

پوریا شفیعی ۱۲ اردیبهشت ۱۳۹۹، ۱۹:۱۱

درود آقا پوریا

میشه این جمله که در پاسخ بالا گفتید رو بیشتر باز کنی:

وقتی شما به عنوان پارامتر اول این متد this رو پاس میدین (اگر در فرگمنت باشید getcontext()) در واقع دارین مقداره اون اکتیویتی رو میدین (به عبارتی هر دفعه MainActivity رو initilize نمیکنین)  به پارامتر مربوطه.

1.منظورتون از مقدار Activity همون MainActivity هست؟ مقدار کدوم صفتش؟

2.پارامتر مربوطه منظورتون this هست؟ اگر اینطوره که همیشه this با یه نمونه بعد از خودش ظاهر میشده مثل:this.firsName مثلا.

3.ارتباط جمله درون پرانتز با با کل جمله چیه؟ (اگر در فرگمنت باشید getcontext())

مرسی

پژمان آزاد ۲۹ اردیبهشت ۱۳۹۹، ۱۴:۳۷