چه زمانی از rx استفاده کنیم و چه زمانی از livedata

پرسیده شده
فعالیت 1077 روز پیش
دیده شده 517 بار
1

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

من یک سوالی داشتم که اگر ما از live data استفاده بکنیم اون وقت rx java  دیگر به چه دردی می خورد؟! live data تمام کاراهای ترد را مثل rx انجام می دهد 

ممنون 

فایل پیوست

رحیم محمودزاده
رحیم محمودزاده

12 اسفند 99

2
حذف شده

سلام وقت بخیر

 

کاری که livedata میکنه ‘تا حدودی" شبیه کار rxjava ست.

livedata به چرخه حیات اگاه هست به همین دلیل میتونه تشخیص بده چه زمانی واکنش انجام شود این برخلاف rx هست که باید برای ازاد سازی مموری از Disposable استفاده کنیم.

همینطور در livedata نیازی نیست مثل rxjava اطلاع بدیم که دیتا تغییر کرده چرا که خودش این قضایا رو متوجه میشه و دیتا رو تغییر میده.

اما تماما بسته به شرایطمون داره که چه زمانی از rx استفاده کنیم و چه زمانی از livedata که در پروژه نایکی این مفاهیم هم توضیح داده شده . 

بریم سراغ مقایسه ها:

توی لایو دیتای ما خیلی از اپراتور های rx رو نداریم 

ما توی لایو دیتا عملیات رو توی MainThread انجام می دهیم درصورتی که توی rx میتونیم مشخص کنیم عملیات توی background انجام شود.(اشاره به جلسات rx)

توی livedata برای انجام یک تسک باید صبر کنیم تسک قبلی تموم بشه که بهش میگن synchronous .(این مفهوم در جلسات کوروتین تدریس شده )

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

 مثلا زمانی که بخواهید state رو نگه دارید به عنوان مثال در پروژه student کاربر میاد و روی دکمه اضافه کردن دانشجویان کلیک میکنه و وارد صفحه دیگری میشه ما در اینجا نیاز داریم برای صفحه لیست دانشجویان از livedata استفاده کنیم ولی هنگام اضافه کردن یک دانشجو چون نیاز نیست state رو نگه داریم از rx استفاده میکنیم. 

 

همینطور در زیر هم لینکهایی قرار میدم امیدوارم براتون مفید باشن:

لینک1

لینک2

موفق باشین :)

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

12 اسفند 99

-1
حذف شده

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

فایل پیوست

mehran akbari

توسط

mehran akbari

27 فروردین 00