2017-07-19 2 views
3

Nous utilisons soutien libs v 25.+ et les nouveaux composants de l'architecture v 1.0.0-alpha3 et nous avons reconnu que les ViewModels qui sont Fragment scope ne sont pas correctement retenus:Conserver ViewModels avec la portée du fragment tout écran rotatif

class MyFragment : LifecycleFragment() { 

    protected lateinit var viewModel: MyViewModel 

    override fun onCreate(savedInstanceState: Bundle?) { 
     super.onCreate(savedInstanceState) 
     viewModel = ViewModelProviders.of(this).get(MyViewModel::class.java) 
    } 
} 

Le viewmodel est essentiellement recréés chaque fois que l'application tourne. Cela peut être résolu en changeant à onActivityCreated comme utilisé dans les exemples google. Puisque la documentation indique onCreate je m'attends à ce que ce soit un fragment ou ViewModelProvider bug.

Répondre

2

Après avoir consulté l'équipe Android que nous avons compris qu'il est en effet un problème au sein de l'SupportFragmentManager qui est résolu dans v 26.+ de commutation ainsi

26.0.0-beta2 

ont aidé et maintenant ViewModels sont conservés dans onCreate comme prévu.