package Ġqs os . app . demo . form Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Database Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . room . Room Database Ċ import Ġqs os . lib . base . base . Base Application Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ: Ġ åįİ æ¸ħ æĿ ¾ Ċ Ġ* ĠçĶ¨æĪ· æķ°æį®åºĵ ï¼Į å½ĵåīį çīĪæľ¬ ãĢĲ 1 ãĢĳ Ċ Ġ*/ Ċ @ Database ( ĊĠĠĠĠĠĠĠ Ġversion Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġentities Ġ= Ġ[ User Entity :: class ] Ċ ) Ċ abstract Ġclass ĠUser Database Ġ: ĠRoom Database () Ġ{ ĊĊĠĠĠ Ġabstract Ġval Ġuser Dao : ĠUser Dao ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠDB _ NAME Ġ= Ġ"${ User Database :: class . java . simple Name }. db " ĊĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠINSTANCE : ĠUser Database ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠUser Database Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġcreate ( Base Application . app Context ). also Ġ{ ĠINSTANCE Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate ( context : ĠContext ): ĠUser Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoom . database Builder ( context , ĠUser Database :: class . java , ĠDB _ NAME ). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }