Junior — Middle
Kā īstenot tīkla pieprasījumu izpildi, izmantojot ViewModel lietojumprogrammā?
sobes.tech AI
Atbilde no AI
Lai veiktu tīkla pieprasījumus Android lietotnē, izmantojot ViewModel, parasti tiek izmantota MVVM arhitektūra un bibliotēkas, piemēram, Retrofit un Coroutines.
Galvenā ideja:
- ViewModel satur datu ielādes loģiku un pārvalda UI stāvokli.
- Tīkla pieprasījumi tiek veikti asinhroni, lai neapturētu galveno plūsmu.
- Pieprasījuma rezultāti tiek nodoti uz View, izmantojot LiveData vai StateFlow.
Piemērs ar Kotlin Coroutines un Retrofit:
class MyViewModel(private val repository: MyRepository) : ViewModel() {
private val _data = MutableLiveData<ResultType>()
val data: LiveData<ResultType> = _data
fun fetchData() {
viewModelScope.launch {
try {
val response = repository.getDataFromNetwork()
_data.value = response
} catch (e: Exception) {
// Kļūdu apstrāde
}
}
}
}
class MyRepository(private val apiService: ApiService) {
suspend fun getDataFromNetwork(): ResultType {
return apiService.fetchData()
}
}
Šeit viewModelScope automātiski pārtrauks korutinu, kad ViewModel tiks iznīcināts, novēršot atmiņas noplūdes. Šī pieeja nodrošina skaidru atbildības sadalījumu un atvieglo testēšanu.