J
Size: a a a
J
J
J
public interface MyCounter {
String getRemainTimeText(LocalDateTime targetDate);
}
J
А
J
А
J
J
T
С
С
VV
private val _something: MutableLiveData<Something> = MutableLiveData()
val something: LiveData<Something>
get() = _something
Если используешь viewModelScope
, то лучше всю IO
или CPU
работу выполняй, меняя контекст корутины, потому что по дефолту viewModelScope
работает в Main контексте viewModelScope.launch{
try {
val someIOWork = withContext(Dispatchers.IO) {
someNetworkOrDiskWOrk()
}
_something.value = someIOWork
} catch(e: Exception)
}
VV
С
private val _something: MutableLiveData<Something> = MutableLiveData()
val something: LiveData<Something>
get() = _something
Если используешь viewModelScope
, то лучше всю IO
или CPU
работу выполняй, меняя контекст корутины, потому что по дефолту viewModelScope
работает в Main контексте viewModelScope.launch{
try {
val someIOWork = withContext(Dispatchers.IO) {
someNetworkOrDiskWOrk()
}
_something.value = someIOWork
} catch(e: Exception)
}
С
VV
viewModel.someLiveData.observe(this) {
}
С
viewModel.someLiveData.observe(this) {
}