Should we Use ViewModels to communicate between 2 different fragments or bundles in single activity App Architecture? : <p>Scenario 1 - If we use <code>ViewModels</code> to communicate between fragments, then the <code>ViewModel</code> has to be created by activity reference and hence going to stay there in memory until the activity is destroyed.</p>

<p>Scenario 2 - In master-detail flow <code>ViewModel</code> makes our life easier but again the memory usage issue is there.</p>

<p>Scenario 3 - We have <code>viewModelScope</code> in the new version of arch library to cancel jobs with Fragment/Activity lifecycles, but if <code>ViewModel</code> is created with activity reference then it's going to stay there until activity is destroyed. Hence the job can still be executing and fragment is already gone.</p>
