在离线时存储在房间数据库中的数据 我从API中获取数据,然后将其存储在房间数据库中。我试图在离线时显示存储在房间数据库中的数据,但它一直在破坏自身。请帮忙。 我想要...

问题描述 投票:0回答:0
if (!isConnected){ program.text = "Requires internet" //startTime.visibility = View.INVISIBLE //endTime.visibility = View.INVISIBLE // emptyString.visibility = View.VISIBLE // emptyString.text = "No internet" apiViewModel.programs.observe(this) { programs -> run { adapter.submitList(programs) // Log.d("Programs", "$programs") } } play.setOnClickListener { Toast.makeText(this, "Requires internet", Toast.LENGTH_SHORT).show() } stop.setOnClickListener { finish() stopService(Intent(this, BackgroundStreamService::class.java)) } } else{ //startTime.visibility = View.VISIBLE //endTime.visibility = View.VISIBLE play.setOnClickListener { if(isPlaying){ play.setImageResource(R.drawable.baseline_play_arrow_24) stopService(Intent(this, BackgroundStreamService::class.java)) isPlaying = false }else{ startForegroundService(Intent(this, BackgroundStreamService::class.java)) isPlaying = true //play.setBackgroundResource(R.drawable.baseline_stop_24) play.setImageResource(R.drawable.baseline_stop_24) } } stop.setOnClickListener { finish() stopService(Intent(this, BackgroundStreamService::class.java)) } //fetchPrograms() apiViewModel.programs.observe(this) { programs -> run { adapter.submitList(programs) Log.d("Programs", "$programs") } } }

rrepo

val programs: LiveData<List<Program>> = Transformations.map(programDao.getPrograms()){ it.asDomainModel() } suspend fun refreshPrograms(){ withContext(Dispatchers.IO){ val programs = NodejsApi.programApi.getProgramAsync().await() programDao.insertAll(programs) } }

我还需要在检查手机是否连接到Internet之后还需要检查数据库中是否存在数据。
if (programs.isEmpty()){
       emptyString.visibility = View.VISIBLE
       emptyString.text = "No data in the database. \nPlease turn on the internet."
 }else{
       adapter.submitList(programs)

}

	
android kotlin android-room offline
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.