Wann wird das Repository zerstört, wenn sie in Körpern verwendet werden?
Posted: 03 Jun 2025, 16:45
Ich habe ein Repository namens MainRepository mit @ActivityRetaNedScoped < /p>
@ActivityRetainedScoped
class MainRepository @Inject constructor( ... ) {
fun getCurrentUser(): Flow = callbackFlow { ... }
}
< /code>
Dieses Repository wird in mehrere Ansichtsmodelle wie diesen injiziert, da ich in verschiedenen Aktivitäten dieselben Echtzeitdaten von Firestore verwenden muss, indem ich Callback-Flows < /p>
verwenden muss@HiltViewModel
class MainViewModel @Inject constructor(
mainRepository: MainRepository) : ViewModel() {
val user: LiveData = mainRepository.getCurrentUser().asLiveData()
}
< /code>
und < /p>
@HiltViewModel
class ProgramViewModel @Inject constructor(
mainRepository: MainRepository): ViewModel() {
val user: LiveData = mainRepository.getCurrentUser().asLiveData()
}
< /code>
Schließlich verwende ich meine Ansichtsmodelle in meinen Aktivitäten wie diesem < /p>
val mainViewModel: MainViewModel by viewModels()
val currentUser by mainViewModel.user.observeAsState()
< /code>
val programViewModel: ProgramViewModel by viewModels()
val currentUser by programViewModel.user.observeAsState()
< /code>
I want to know when exactly will my repository will be destroyed, and of course, if there is a better way to do this please do mention it, my objective is to reduce multiple cloud firestore requests. I am new with Hilt
@ActivityRetainedScoped
class MainRepository @Inject constructor( ... ) {
fun getCurrentUser(): Flow = callbackFlow { ... }
}
< /code>
Dieses Repository wird in mehrere Ansichtsmodelle wie diesen injiziert, da ich in verschiedenen Aktivitäten dieselben Echtzeitdaten von Firestore verwenden muss, indem ich Callback-Flows < /p>
verwenden muss@HiltViewModel
class MainViewModel @Inject constructor(
mainRepository: MainRepository) : ViewModel() {
val user: LiveData = mainRepository.getCurrentUser().asLiveData()
}
< /code>
und < /p>
@HiltViewModel
class ProgramViewModel @Inject constructor(
mainRepository: MainRepository): ViewModel() {
val user: LiveData = mainRepository.getCurrentUser().asLiveData()
}
< /code>
Schließlich verwende ich meine Ansichtsmodelle in meinen Aktivitäten wie diesem < /p>
val mainViewModel: MainViewModel by viewModels()
val currentUser by mainViewModel.user.observeAsState()
< /code>
val programViewModel: ProgramViewModel by viewModels()
val currentUser by programViewModel.user.observeAsState()
< /code>
I want to know when exactly will my repository will be destroyed, and of course, if there is a better way to do this please do mention it, my objective is to reduce multiple cloud firestore requests. I am new with Hilt