سلام
من یک پروژه خبری بر اساس معماری MVVM و زبان کاتلین و RxJava , liveData ساختم.
وقتی لیست خبرها رو میگیرم و وارد جزئیات خبر میشوم و دوباره به فرگمنت لیست خبر برمیگردم دو تا اتفاق میافتد.
اول اینکه لیست خبرهایی قبلا وجود داشته نمایش میدهد.
دوم اینکه باز به سمت سرور رکوئست میفرستد و دوباره لیست خبرها رو آپدیت میکند.
خب من نمیخوام وقتی برمیگردم به صفحه لیست خبرها دوباره لیست خبرها آپدیت شود.
چه راه حلی پیشنهاد میدهید؟
class NewsViewModel:ViewModel() {
private val compositeDisposable=CompositeDisposable()
private var news= MutableLiveData<NewsLab>()
private val _str= MutableLiveData<String>()
val str:LiveData<String>
get() =_str
fun getNews(context: Context):LiveData<NewsLab>{
LabRetrofit.getInstance(context).news()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : SingleObserver<NewsLab> {
override fun onSubscribe(d: Disposable) {
compositeDisposable.add(d)
}
override fun onSuccess(t: NewsLab) {
if (t.success){
news.value=t
Log.i("newsViewModel", t.dataNews!!.get(0).toString())
}else{
_str.value="خطا"
}
}
override fun onError(e: Throwable) {
_str.value=e.message
}
})
return news
}
override fun onCleared() {
super.onCleared()
compositeDisposable.clear()
}
}