-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clarification: can a service be registered/unregistered more than once? #264
Comments
Back in Simple-Stack 1.x there was a "bug" (design oversight) caused by how re-registering the same instance would call So even if the same instance is added in multiple scopes, it would only have Therefore, unless you cache these poor objects in some singleton and "re-add the same instance" again, then these callbacks are ensured to be only called once. If the object is instantiated along with the scope as is done in the samples in TL;DR:
Yes
Yes 😉 btw, if the class is instantiated "from a scope" as it would happen from a Backstack, then |
Okay, that's helpful thank you. Want me to make a PR to add that info onto |
Hmm, there is already a comment like so: /**
* When a service implements {@link Registered}, then it will receive a callback when the service has been registered to at least one scope.
*/
public static interface Registered {
/**
* Called when the service has been registered to any scopes, and this is the first scope it was registered to.
*/
void onServiceRegistered();
/**
* Called when the service is no longer registered in any scopes.
*/
void onServiceUnregistered();
} Although if it's not actually lcear, then it can be useful. It also doesn't really mention how |
I will consider this solved. |
Sorry I didn't get back to you, yeah I think it's fine |
I'm trying to write something equivalent to
val ViewModel.viewModelScope: CoroutineScope
:Am I correct in thinking that once unregistered, the service is destroyed and that instance won't ever be reused? So
onServiceRegistered
andonServiceUnregistered
only ever get called once each?Another question; with Jetpack ViewModel, I often have a
loadInitialData()
method that I call fromFragment.onViewCreated
, because I'd rather not kick off database calls/network calls from the constructor, it feels hacky and is not nice for testing.onServiceRegistered
looks ideal for kicking off initial data loading, would you recommend that?The text was updated successfully, but these errors were encountered: