package Ġcom . example . product management Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Message Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġkotlinx . android . synt hetic . main . reg _ edit _ layout .* Ċ import Ġkotlinx . android . synt hetic . main . super _ manager _ layout . toolbar Ċ import Ġorg . jetbrains . ank o . selector Ċ import Ġjava . lang . Runnable Ċ import Ġjava . sql .* Ċ import Ġkotlin . concurrent . thread ĊĊ Ċ @ Suppress (" DE PREC ATION ") Ċ class ĠReg Edit Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġname List Ġ= ĠArrayList < String >() ĊĊĠĠĠ Ġval Ġupdate List 1 Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġval Ġhandler Ġ= Ġ@ Suppress Lint (" Handler Leak ") ĊĠĠĠ Ġobject Ġ: ĠHandler (){ ĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Handler Leak ") ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Message ( msg 1 : ĠMessage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( msg 1 . what ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate List 1 Ġ-> Ġdialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . reg _ edit _ layout ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġinit department () ĊĊĠĠĠĠĠĠĠ Ġreg B tm 1 . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkeyword A Ġ= Ġkey Word 1 . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkeyword B Ġ= Ġkey Word 2 . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Edit Ġ= Ġname Reg . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name Edit . isNotEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetUser () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( keyword A . isNotEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( keyword A Ġ== Ġkeyword B ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave User () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" æ³¨åĨĮ æĪĲåĬŁ ï¼ģ ". show Toast () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle (" è¯· æ³¨æĦı ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Message (" ä¸¤ æ¬¡ è¾ĵåħ¥ çļĦ å¯Ĩçłģ ä¸į çĽ¸ çŃī ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Cancel able (( false )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Positive Button ((" ç¡®å®ļ ")){ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle (" è¯· æ³¨æĦı ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Message (" å¯Ĩçłģ ä¸įèĥ½ä¸ºç©º ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Cancel able (( false )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Positive Button ((" ç¡®å®ļ ")){ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle (" è¯· æ³¨æĦı ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Message (" å§ĵ åĲį ä¸įèĥ½ä¸ºç©º ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Cancel able (( false )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Positive Button ((" ç¡®å®ļ ")){ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . toolbar , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( item . itemId ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . backup Ġ-> finish () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . finish Ġ-> Activity Collector . finish All () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// èŃ¦ åĳĬ å¯¹ è¯Ŀ æ¡Ĩ ĊĠĠĠ Ġprivate Ġfun Ġdialog (){ ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle (" è¯· æ³¨æĦı ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Message (" åĲįç§° éĩįå¤į ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Cancel able (( false )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Positive Button ((" ç¡®å®ļ ")){ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// èİ·åıĸ åĲį åįķ ĊĠĠĠ Ġprivate Ġfun ĠgetUser (){ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconn Ġ= ĠDB Util (). con ection () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsql Ġ= Ġ" SELECT Ġ* ĠFROM Ġusers " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatement : ĠStatement Ġ= Ġconn !!. createStatement () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæī§è¡Į sql æŁ¥è¯¢ è¯Ńåı¥ å¹¶ èİ·åıĸ æŁ¥è¯¢ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Set : ĠResultSet Ġ= Ġstatement . executeQuery ( sql ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( r Set . next ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch Name Ġ= Ġr Set . getString (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname List . add ( search Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Name () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// å§ĵ åĲį ä¸į ä¸ºç©º æĹ¶ æŁ¥è¯¢ æĺ¯åĲ¦ éĩį åĲį ĊĠĠĠ Ġprivate Ġfun Ġsearch Name (){ ĊĊĠĠĠĠĠĠĠ Ġval Ġname Edit Ġ= Ġname Reg . text . toString () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name List . contains ( name Edit )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg 1 Ġ= ĠMessage () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmsg 1 . what Ġ= Ġupdate List 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . sendMessage ( msg 1 ) ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( name Edit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit department (){ ĊĠĠĠĠĠĠĠ Ġval Ġdepartment Array Ġ= ĠlistOf (" è¶ħ çº§ ç®¡çĲĨ ", Ġ" æĻ®éĢļ ç®¡çĲĨ ", Ġ Ġ" æĻ®éĢļ åĳĺ å·¥ ") ĊĠĠĠĠĠĠĠ Ġdepartment Select . text Ġ= Ġdepartment Array [ 0 ] ĊĠĠĠĠĠĠĠ Ġdepartment Select . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselector (" å·¥ åºı åĲįç§° ", Ġdepartment Array ){ i Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepartment Select . text Ġ= Ġdepartment Array [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġsave User (){ ĊĠĠĠĠĠĠĠ Ġvar Ġconn : ĠConnection Ġ// ä¸Ģä¸ª æĪĲåĳĺ åıĺéĩı Ċ Ċ // åĬłè½½ æķ°æį®åºĵ é©±åĬ¨ Ċ // åĬłè½½ æķ°æį®åºĵ é©±åĬ¨ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClass . forName (" com . mysql . jdbc . Driver ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" MainActivity ", Ġ" åĬłè½½ JDBC é©±åĬ¨ æĪĲåĬŁ ï¼ģ ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠClass NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" MainActivity ", Ġ" åĬłè½½ JDBC é©±åĬ¨ å¤±è´¥ ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// è¿ŀæİ¥ æķ°æį®åºĵ ï¼Ī å¼Ģ è¾ Ł ä¸Ģä¸ª æĸ° çº¿ç¨ĭ ï¼ī ĊĠĠĠĠĠĠĠ Ġ// è¿ŀæİ¥ æķ°æį®åºĵ ï¼Ī å¼Ģ è¾ Ł ä¸Ģä¸ª æĸ° çº¿ç¨ĭ ï¼ī ĊĠĠĠĠĠĠĠ Ġval Ġthread Ġ= ĠThread ( Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åıį å¤į å°Ŀè¯ķ è¿ŀæİ¥ ï¼Į çĽ´ åĪ° è¿ŀæİ¥ æĪĲåĬŁ åĲİ éĢĢåĩº å¾ªçİ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(! Thread . inter rupted ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 1 0 0 ) Ġ// Ġæ¯ı éļĶ 0 . 1 ç§Ĵ å°Ŀè¯ķ è¿ŀæİ¥ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" MainActivity ", Ġe . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 2 . è®¾ç½® å¥½ IP / ç«¯åı£ / æķ°æį®åºĵ åĲį / çĶ¨æĪ·åĲį / å¯Ĩçłģ çŃī å¿ħè¦ģ çļĦ è¿ŀæİ¥ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġip Ġ= Ġ" rm - bp 1 6 4 ey sku 8 sar z tm 1 o . mysql . rds . aliyuncs . com " Ġ// æľ¬ æľº IP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġport Ġ= Ġ 3 3 0 6 Ġ// mysql é»ĺè®¤ ç«¯åı£ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Name Ġ= Ġ" prod ust ore " Ġ// èĩªå·±çļĦ æķ°æį®åºĵ åĲį ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ(" jdbc : mysql ://" Ġ+ Ġip Ġ+ Ġ":" Ġ+ Ġport ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"/" Ġ+ Ġdb Name ) Ġ// Ġ æŀĦå»º è¿ŀæİ¥ mysql çļĦ åŃĹç¬¦ä¸² ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġ" qd cks j _ 1 2 3 " Ġ// èĩªå·±çļĦ çĶ¨æĪ·åĲį ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" CK bz 8 7 4 2 6 6 1 9 " Ġ// èĩªå·±çļĦ å¯Ĩçłģ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 . è¿ŀæİ¥ JDBC ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconn Ġ= ĠDriver Manager . getConnection ( url , Ġuser , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" MainActivity ", Ġ" è¿ŀæİ¥ æķ°æį®åºĵ æĪĲåĬŁ !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ·»åĬł æķ°æį® åĪ° users è¡¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Word 1 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Word 2 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġname Reg . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkeyword 1 Ġ= Ġkey Word 1 . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdepartment Reg Ġ= Ġdepartment Select . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsql Ġ= Ġ" insert Ġinto Ġ Ġusers ( name , Ġkeyword , Ġtype ) Ġvalues ('$ name ', Ġ'$ keyword 1 ', Ġ'$ department Reg ')" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĪĽå»º çĶ¨æĿ¥ æī§è¡Į sql è¯Ńåı¥ çļĦ å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatement : ĠStatement Ġ= Ġconn . createStatement () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæī§è¡Į sql æŁ¥è¯¢ è¯Ńåı¥ å¹¶ èİ·åıĸ æŁ¥è¯¢ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnum Ġ= Ġstatement . executeUpdate ( sql ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( num > 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" MainActivity ", Ġ" æĪĲåĬŁ åĨĻåħ¥ æķ°æį® ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" MainActivity ", Ġ" åĨĻåħ¥ éĶĻè¯¯ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åħ³éĹŃ æķ°æį®åºĵ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconn . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" MainActivity ", Ġ" åħ³éĹŃ è¿ŀæİ¥ æĪĲåĬŁ ãĢĤ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" MainActivity ", Ġ" åħ³éĹŃ è¿ŀæİ¥ å¤±è´¥ ãĢĤ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ Runnable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" MainActivity ", Ġ" è¿ŀæİ¥ æķ°æį®åºĵ å¤±è´¥ !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġthread . start () ĊĠĠĠ Ġ} Ċ }