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

فراخوانی API وب سرویس در اکتیویتی که دارای چندین فرگمنت می باشد و توسط کدام متد ؟

Mehran  9 سال پیش  9 سال پیش
0 0

فرض کنید میخواهیم برنامه ای بنویسم که تعدادی دیتا را از وب سرویس دریافت میکند (مثلا شبیه play store یا bazzar)   که دارای چند اکتیویتی است و یکی از این اکتیویتی ها  (Activity main) دارای چند فرگمنت است (فرض کنید بیشتر از 3 تا) .

مناسب ترین گزینه برای call کردن وب سرویس به نظرتون کدام است ؟ 

1 - call کردن تمام request ها  داخل activity و سپس ارسال دیتای دریافت شده به fragment ها ؟

2 - call کردن هر کدام از request ها به صورت جدا گانه داخل fragment ها ؟

 

تا جایی که من تحقیق کردم متوجه شدم گزینه ی دوم بهتره و درستش اینکه request را از طریق متد onCreat فراخوانی کنیم و نه از طریق onCreateView.

 

و نکته ی دوم اینکه در برنامه هایی مثل play store  قبل از دریافت دیتا از وب سرویس یک progress bar نمایش داده میشه و هیچی دیگه داخل صفحه نمایش داده نمیشه و بعد از اینکه دیتا دریافت شد progress bar  دیگه نمایش داده نمیشه فکر میکنم از همون خاصیت visible و  unvisible استفاده می کنند اگه دوستان نظر دیگه ای دارند ممنون میشم راهنمایی کنن تا بقیه هم استفاده کنند.

0 0
در مورد نکته دوم شما میتونید از AsyncTask استفاده کنید که یک کلاس Thread base هست ،در متد onPreExecute این کلاس ProgressBar را نمایش میدید در متد doInBackground اطلاعات را از سرور دریافت میکنید و در متد onPostExecute دیالوگ رو غیرفعال میکنید ،این متد ها به ترتیبی که نام بردم استفاده میشه و در ضمن در 2 متد onPreExecute و onPostExecute نیازی به استفادهاز HANDLER ندارید. (9 سال پیش)
0 0
ممنون از راهنماییتون. اما اگه از رتروفیت برای دریافت اطلاعات استفاده کنیم باز هم نیاز هست که از AsyncTask استفاده بشه چون خود رتروفیت AsyncTask رو داره و از اون استفاده میکنه. و در مورد ProgressBar در نرم افزار play store موقعی که داره دیتا رو لود میکنه هیچ چیز جز ProgressBar وجود نداره حالا من میخوام بدونم برای مخفی کردن سایر ویو ها از خاصیت visible و unvisible استفاده میشه یا نه از روش دیگه ای استفاده میشه؟ (9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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