Comments (8)
@dozd You can also try Blade mvp module - it allows you to inject Presenter
s via Dagger2.
from androidviewmodel.
@dozd what about change of dependencies in component? If you inject them to ViewModel during creation through constructor, they can be no longer valid when activity subcomponent is recreated.
You load ViewModel with old dependencies from previous Subcomponent.
What about creating ViewModel without dependencies and reinject it when he is loaded from ViewModelProvider?
from androidviewmodel.
@micutad I can't imagine that dependencies have "shorter life" than ViewModel. One ViewModel cannot be shared through various Subcomponents as it's bound to the specific fragment that is in specific subcomponent.
Creating class without dependencies and injecting them during life-time of the class is anti-pattern in terms of mutability of the class. Dependency injection is about creating class with their dependencies easily not about managing them during the time of the class.
from androidviewmodel.
@dozd
If you have activity subcomponent than this subcomponent is recreated on config change because old activity is destroyed with current subcomponent, and new activity is created with new subcomponent.
If ViewModel is injected with this subcomponent and saved on config change then all dependencies are invalid after loading retained ViewModel because new activity have new subcomponent with new dependencies.
Not sure if Im explaining this clearly but in my case I have dependencies in ViewModel that are from Activity subcomponent and not from Application component.
from androidviewmodel.
How's your ViewModel living longer than activity? That sounds weird.
from androidviewmodel.
from androidviewmodel.
But for one fragment. And fragment does not live longer than activity as well.
from androidviewmodel.
from androidviewmodel.
Related Issues (20)
- Documentation about inter-view-model communication HOT 4
- changing setModelView to onStart in sample HOT 1
- Communication between ViewModel and Model HOT 4
- More consistent naming convention HOT 5
- Android Studio custom template HOT 1
- Checking for PlayServices HOT 1
- View and ViewModel as a parent class HOT 2
- AVM in Activity issue HOT 1
- IView implementation for an recyclerview's item
- forget ViewModelBaseBindingActivity ha?
- Generic view model HOT 3
- Nested fragments support
- java.lang.IllegalStateException: ViewModel is not ready. Are you calling this method before Activity/Fragment onCreate? HOT 2
- jCenter deprecation
- Context for ViewModel HOT 2
- Other open source projects using AndroidViewModel.... HOT 1
- How to get or inject context in viewmodel... HOT 2
- transfer this rx subscription code from View to ViewModel.... HOT 1
- Please help : "cannot resolve symbol 'T' HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from androidviewmodel.