package Ġcom . zh ixin hu ix ue . library . common . base Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . lifecycle . ViewModel Store Ċ import Ġandroidx . lifecycle . ViewModel Store Owner Ċ import Ġandroidx . multi dex . Multi Dex Ċ import Ġcom . effective . android . anchors . An chors Manager Ċ import Ġcom . effective . android . anchors . Project Ċ import Ġcom . zh ixin hu ix ue . library . common . Build Config Ċ import Ġcom . zh ixin hu ix ue . library . common . core . view model . Event ViewModel Ċ import Ġcom . zh ixin hu ix ue . library . common . ext . current Process Name Ċ import Ġcom . zh ixin hu ix ue . library . common . util .* Ċ Ċ /** Ċ Ġ* Ġä½ľèĢħ ãĢĢ : Ġhe g ao jian Ċ Ġ* Ġ æĹ¶éĹ´ ãĢĢ : Ġ 2 0 2 0 / 1 1 / 1 8 Ċ Ġ* Ġæı ı è¿° ãĢĢ : Ċ Ġ*/ Ċ Ċ // åħ¨å±Ģ ä¸Ĭä¸ĭ æĸĩ Ċ val Ġapp Context : ĠBase Application Ġby Ġlazy Ġ{ ĠBase Application . instance Ġ} Ċ Ċ // çķĮéĿ¢ éĢļä¿¡ ViewModel Ċ val Ġevent ViewModel : ĠEvent ViewModel Ġby Ġlazy Ġ{ ĠBase Application . event Instance Ġ} Ċ Ċ open Ġclass ĠBase Application Ġ: ĠApplication (), ĠViewModel Store Owner { ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġinstance : ĠBase Application ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġevent Instance : ĠEvent ViewModel ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm App ViewModel Store : ĠViewModel Store ĊĊĠĠĠ Ġprivate Ġvar Ġm Factory : ĠViewModel Provider . Factory ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġm App ViewModel Store Ġ= ĠViewModel Store () ĊĠĠĠĠĠĠĠ Ġevent Instance Ġ= Ġget App ViewModel Provider (). get ( Event ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġprocess Name Ġ= Ġcurrent Process Name ĊĠĠĠĠĠĠĠ Ġif Ġ( process Name Ġ== ĠpackageName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä¸» è¿Ľç¨ĭ åĪĿå§ĭåĮĸ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Main Process Init () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¶ä»ĸ è¿Ľç¨ĭ åĪĿå§ĭåĮĸ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Name ?. let Ġ{ Ġon Other Process Init ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġattach Base Context ( base : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . attach Base Context ( base ) ĊĠĠĠĠĠĠĠ ĠMulti Dex . install ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġon Main Process Init () Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ description Ġ Ġ ä»£çłģ çļĦ åĪĿå§ĭåĮĸ è¯· ä¸įè¦ģ æĶ¾åľ¨ onCreate çĽ´æİ¥ æĵįä½ľ ï¼Į æĮīçħ§ ä¸ĭéĿ¢ æĸ°å»º å¼ĤæŃ¥ æĸ¹æ³ķ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠAn chors Manager . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. debug gable ( Build Config . DEBUG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® éĶ ļ çĤ¹ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Anchor ( Init Net Work . TASK _ ID , Init Utils . TASK _ ID , Init Comm . TASK _ ID , Init App Lifecycle . TASK _ ID , Init Toast . TASK _ ID ). start ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject . Builder (" app ", ĠApp Task Factory ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( Init Net Work . TASK _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( Init Comm . TASK _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( Init Utils . TASK _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( Init Toast . TASK _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( Init App Lifecycle . TASK _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ¶ä»ĸ è¿Ľç¨ĭ åĪĿå§ĭåĮĸ ï¼Į [ process Name ] Ġ è¿Ľç¨ĭ åĲį ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġon Other Process Init ( process Name : ĠString ) Ġ{} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ä¸Ģä¸ª åħ¨å±Ģ çļĦ ViewModel ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget App ViewModel Provider (): ĠViewModel Provider Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewModel Provider ( this , Ġthis . getApp Factory ()) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġget App Factory (): ĠViewModel Provider . Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Factory Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Factory Ġ= ĠViewModel Provider . Android ViewModel Factory . getInstance ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm Factory Ġas ĠViewModel Provider . Factory ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget ViewModel Store (): ĠViewModel Store Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm App ViewModel Store ĊĠĠĠ Ġ} Ċ }