💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ 7Learn Student
ارور observe
جامعه جاوا (اندروید) ایجاد شده در ۲۸ مهر ۱۴۰۲

استاد اینجا this رو به عنوان پارامتر نوشتن ولی واسه من ارور میده و Suggestion زیر یعنی viewLifecycleOwner میاد

mainViewModel.productsLiveData.observe(viewLifecycleOwner){}

و توی جلسه Loading View هم همین داستانه

mainViewModel.progressBarLiveData.observe(viewLifecycleOwner){}

 

و مشکل اینجاست که با این کار برنامه Force Close میشه

سلام وقت بخیر 

برای observe لایو دیتا در اکتیویتی از 

viewModel.userLiveData.observe(this, Observer {
        //your code here
    })

و برای observe لایو دیتا در فرگمنت از 

viewModel.userLiveData.observe(viewLifecycleOwner, Observer {
    //your code here
})

استفاده کنید.

این کار به این منظور انجام میشود که چرخه حیات لایو دیتای مورد نظر با چرخه حیات کامپوننت مورد نظر هماهنگ شود یعنی با از بین رفتن اکتیوتی یا فرگمنت 
چرخه حیات لایو دیتا هم متوقف شود 
اگر باز به مشکل خوردید دقت کنید که لایو دیتا رو در جای درستی observe کرده باشید در فرگمنت در onStart و در اکتیوتی در onCreate اگر قبل ساخته شدن ویو فرگمنت یا اکتیوتی لایو دیتا استارت شود خطای نال بودن ویو را دریافت میکنید 
چون همونظور که گفتم چرخه حیات هر دو باید مطابق هم باشند باهم ساخته و باهم از بین می‌روند.

سعیده جمالی ۰۲ آبان ۱۴۰۲، ۰۸:۵۷

تشکر بابت راه حل و توضیح اون مفاهیم

ولی کماکان با رعایت کردن موارد اشاره شده هنوز مشکل Force Close شدن برنامه وجود داره

7Learn Student ۰۵ آبان ۱۴۰۲، ۰۹:۴۲