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

انتقال متغیر مابین اکتیویتی ها

Farnad  11 سال پیش  11 سال پیش
0 0

با توجه به اینکه با public static تعریف کردن متغیر میتوان از آن متغیر در اکتیویتی های دیگر استفاده نمود، استفاده از putExtras چه مزیتی دارد؟

+1 0
متغیر های استاتیک با اجرای برنامه در حافضه جای میگیرند و تا پایان اجرای برنامه در حافضه وجود دارند . چنانچه متغیرهای زیادی را به صورت استاتیک معرفی کنیم طبیعتا عملکرد برنامه کمی کند تر می شود و این موضوع در سخت افزارهای پایین تر خود را نشان می دهد . از متغیر های استاتیک زمانی استفاده می کنیم که بخواهیم از آن متغیر در بیشتر فرم ها استفاده کنیم . ولی متغیر هایی که فقط در یک اکتیویتی نیاز است از putExtras استفاده می کنیم . (11 سال پیش)
0 0
با تشکر از توضیحات شما، غالبا تعداد متغیرهایی را که تمایل به انتقال به اکتیویتی دیگر داریم محدود میباشد و قاعدتا حافظه زیادی را نبایستی اشغال کنند. (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
AhmadVB  11 سال پیش
+1 0

هر کدام از موارد فوق جای خودشان کاربرد دارد. هر اکتیویتی یک کلاس است و ممکن است نیاز به نگه داشتن مقدار های منحصر به خودش را داشته باشد. شما نمی توانید همیشه از یک متغیر Global به جای پارامتر استفاده کنید.

مثالی می زنم:

برنامه بازار را در نظر بگیرید. فرض کنید درون صفحه ی اصلی هستید و یک برنامه را باز می کنید. به روش شما اگر به جای پاس دادن ID برنامه مورد نظر به اکتیویتی جزئیات برنامه از متغیر Global استفاده کنید. تا این جا همه چیز خوب است. در حالی که درون صفحه جزئیات آن برنامه هستید از قسمت سایر برنامه های مرتبط. یک برنامه دیگر را باز میکنید. در این حالت شما برای اینکه اکتیویتی بعدی برنامه جدید را نشان بدهد باید مقدار آن متغیر Global را به ID برنامه جدید تغییر دهید و بعد اکتیویتی نمایش جزئیات برنامه ها را صدا بزنید. در این حالت هم ظاهرا مشکلی نیست ... !  حالا کاربر دکمه back روی گوشی اش را فشار می دهد و به اکتیویتی برنامه اول باز می گردد و قصد دارد یک نظر ارسال کند. این نظر با ID کدام برنامه ارسال می شود ؟


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