Приведенный ниже код работает только один раз.
class MainActivity : AppCompatActivity() {
lateinit var userLiveData: LiveData<List<User>>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
getUsers() //WORKING <---------
userLiveData.observe(this, Observer {
it.forEach { user ->
Log.i("TAG", user.name)
}
})
lifecycleScope.launch {
delay(5000) //Refresh the result
getUsers() //NOT WORKING <---------
}
}
private fun getUsers() {
val apiHelper = ApiHelper(RetrofitBuilder.apiService)
val mainRepository = MainRepository(apiHelper)
userLiveData = liveData {
val res = mainRepository.getUsers() //Suspend function
emit(res)
}
}
}
При первом вызове функции getUsers()
я вижу журналы. Но позже звоню getUsers()
, лога на экране нет. Это означает, что функция userLiveData.observe(
запускается один раз.