سه سئوال پیرامون مدیریت چرخه حیات یک اکتیویتی

پرسیده شده
فعالیت 1395 روز پیش
دیده شده 557 بار
0

اول:

برای اکتیویتیها تا اینجای آموزش صرفا به متد onCreate() دسترسی داشتیم برای برنامه نویسی، ولی اینجور که متوجه شدم برخی کدها و دسترسی به برخی منابع برای سنگین نشدن برنامه بهتر در متدهای دیگر نوشته بشن مثل onStart() یا onResume() در صورتیکه ما فعلا گویا کاری با اونها نداریم آیا الزامی به فراخوانی اون متدها و دستکاریشون هست و اینکه چگونه میشه تشخیص داد بهتره که این کد برای کارکرد بهتر اپ باید مثلا در متد onStart() نوشته بشه یا onCreate().

دوم:

متدهای چرخه حیات فرگمنت همگی درون کلاس MyFragment فراخوانی میشن. در مورد اکتیوتی چطور؟ همگی درون کلاس MainActivity فراخوانی میشن؟

سوم:

اگر پاسخ قسمت دوم مثبت هست: در برنامه ProfileUi وقتی روی دکمه EditProfile کلیک میشه اکتیویتی Main ابتدا onPause() و سپس onStop() میشه و منتظر دریافت جواب از اکتیویتی EditProfile میمونه زمانی که روی دکمه ارسال پاسخ درون اکتیویتی دوم کلیک میشه اکتیویتی EditProfile ابتدا onPause() سپس onStop() و در نهایت onDestroy() میشه و اکتیویتی MainActivity که روی حالتonStop() هست ابتدا onRestart() میشه سپس onStart() و در نهایت onResume() میشه یعنی دیگه onCreate() نمیشه. بنابراین نمیتونیم پاسخ رو درون متد onCreat() دریافت کنیم ولی چرا ازمتدی با نام onActivityResult() استفاده کردیم؟ نمیتونستیم onResume() رو فراخوانی و و جواب رو اونجا دریافت کنیم برای استانداردسازی بهتر کدمون و سنگین نشدن برنامه؟

(تعامل با اکتیویتی مثل کلیک کردنها درون متد onResume() اتفاق میوفته. یعنی در برنامه ContactsRecyclerView و یا Profile Ui و قتی روی دکمه add یا EditProfile کلیک میکنیم که از Intent و Bundle برای جابه جاکردن اطلاعات بین دو تا اکتیویتی استفاده میکردیم متد onResume() نقش اساسی ایفا میکرده درسته نمیگم؟ بنابراین...

 

الان با وجود متد onActivityResult() متد onResume() قطعا بعد از اجرای این متد ران میشه چون باید نتیجه رو به کاربر نشون بده. متد onActivityResult() جزء چرخه حیات یک اکتیویتی نیست بنابراین این متد رو چگونه هندل میکنه اکتیویتی؟ 

فایل پیوست

پژمان آزاد
پژمان آزاد

30 تیر 99

3
حذف شده

سلام و احترام

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

سوال دوم : فکر میکنم در Activity که پدر هر اکتیوتی که میسازیم هست این موارد فراخوانی میشوند.و اینکه Context نیز پدر کلاس Activity هست.میتونید با گرفتن کنترل و کلیک چپ به کلاس های مربوطه رفته و موارد رو بررسی کنید.

سوال سوم :متد onActivityResult در بستر اندروید موجود هست و ما باید برای این کار از این متد استفاده میکنیم چرا که وقتی میگوییم startActivityForResult یعنی نتیجه رو در متد onActivityResult در اکتیویتی که هستم برای من برگردان اگرچه میتوانیم با اینترفیس این موارد رو هندل کنیم ولی اصلا درست نیست . 

سوال چهارم : درسته این متد جز چرخه نیست ولی خب دیگه اندروید خودش مدیریت میکته و شما با دیباگینگ که در ادامه به صورت حرفه ای در پروژه های مختلف مسلط خواهید شد میتونین ببینین این عمل چطوری داره انجام میشه 

اگرچه بنظرم نیازی نیست ما ساختار های ریز و درشت اندروید رو در ابتدای کار بدانیم چرا که از مباحث اصلی دور شده و به اموزش اصلی نمیرسیم. 

و در کل تمام این موارد رو با دیباگینگ و میتونیم این اعمال رو ببینیم که چطور مدیریت میشوند. که البته اینقدر با این مفاهیم سر و کله میزنیم ملکه ذهن میشود 

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

31 تیر 99

0
حذف شده

مرسی پوریا جان. 

 

میگم واتس اپ و تلگرام از یک بخش شبیه به لیست آیتمهای RecyclerView تشکیل میشه و یک بخش که جزئیات چت هر آیتم رو نشون میده.

دو تا سئوال اینجا واسم بوجود اومده:

۱. هر بخش درون یه فرگمنت هندل میشه؟ و اینکه بخش لیست درون فرگمنت رو  با استفاده از RecyclerView پیاده سازی میکنه؟

۲. وقتی صفحه نمایش واتس اپ یا تلگرام بزرگتر از گوشی معمولی باشه مثل تبلت یا حتی نسخه دسکتاپشون،  همون اول صفحه رو دو قسمت میکنه سمت چپ صفحه نمایش، بخش لیستها و سمت راست، بخش چت مربوط به هر کدوم از آیتمهای موجود در لیست. در این حالت از Variation ها  استفاده کرده؟ یعنی اومده گفته اگر سایز از فلان مقدار بیشتر شد بیا و همون ابتدا اپلیکیشن رو اینگونه نمایش بده. درست نمیگم. اگر تشخیصم درسته اینجوری اپلیکیشن سنگین نمیشه؟

فایل پیوست

پژمان آزاد

توسط

پژمان آزاد

31 تیر 99

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

31 تیر 99