[proposal] linking the view pool to activities to lifecycle owner #1099
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a proposal and will require an update to Hilt, see google/dagger#2202 (comment).
The idea of theses changes in to Epoxy and Hilt are to fix a memory leak. It happen because Epoxy link the view pool to the activity. However, when a view get inflated in a Hilt fragment, the view's context is a wrapper and hold a reference on the fragment. The fragment leak for the whole activity lifecycle.
So why Epoxy link the view pool arbitrary to the
Activity
? Instead, could we use the view's context and find the closestLifecycleOwner
. When this lifecycle get destroyed we can clear the pool.It is a proposal, happy to discuss here. Using the
LifecycleOwner
instead ofActivity
looks natural. Is it possible to use Epoxy outside of anActivity
that is not aLifecycleOwner
?