تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ رحیم محمودزاده
چه زمانی از rx استفاده کنیم و چه زمانی از livedata
پوریا شفیعی حل شده توسط پوریا شفیعی

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

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

ممنون 

سلام وقت بخیر

 

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

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

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

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

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

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

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

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

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

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

 

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

لینک1

لینک2

موفق باشین :)

بهترین پاسخ
پوریا شفیعی ۱۲ اسفند ۱۳۹۹، ۱۷:۵۷

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

mehran akbari ۲۷ فروردین ۱۴۰۰، ۱۰:۳۶