Skip to content

Memory leak in ViewGroupMviDelegateImpl #310

Open
@qwert2603

Description

Hello!
I found a memory leak in ViewGroupMviDelegateImpl.
Mosby version is 3.1.0.

Steps to reproduce:

  • create CustomView extending MviFrameLayout or MviLinearLayout or MviRelativeLayout
  • programmaticaly add this CustomView to view hierarchy while activity is resumed
  • programmaticaly remove this CustomView from view hierarchy while activity is resumed

After that CustomView will be in memory until activity is destroyed.
I also found that this is because of registering ActivityLifecycleCallbacks when creating ViewGroupMviDelegateImpl.
ViewGroupMviDelegateImpl removes ActivityLifecycleCallbacks only when activity is destroyed. But there may be a lot of such CustomView those will hang in memory though they are detached and removed from view hierarchy.

I reviewed logic of consuming activity-lifecycle in ViewGroupMviDelegateImpl and may be we can register ActivityLifecycleCallbacks when attaching view to presenter and unregister ActivityLifecycleCallbacks in two cases: when activity is destroying and also when detaching view from presenter ?

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions