android - Don't know if it is safe to implement Asynctask like that -


i made code on android , receive opinions stackoverflow people. code used asynctask class... don't know if coded or not ...

here code:

package com.example.basicmaponline;  import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import java.util.hashmap; import java.util.concurrent.executionexception;  import android.app.activity; import android.content.intent; import android.os.asynctask; import android.os.bundle; import android.os.handler; import android.os.message; import android.util.log;  import com.mlab.android.basicoverlays.postgresql; import com.mlab.android.basicoverlays.sqlloja;  public class intro extends activity{  //sqllistloja listaloja; hashmap<string, sqlloja> listaloja;  @override protected void oncreate(bundle savedinstancestate) {     // todo auto-generated method stub     super.oncreate(savedinstancestate);     setcontentview(r.layout.intro);     //intent openmainactivity = new intent("com.example.basicmaponline.mainactivity"); //isto vem ficheiro androidmanifest.xml o "com.example....."     //startactivity(openmainactivity);      try {         listaloja = new loaddatabase().execute().get();     } catch (interruptedexception e1) {         // todo auto-generated catch block         e1.printstacktrace();     } catch (executionexception e) {                 // todo auto-generated catch block         e.printstacktrace();     }       if(listaloja !=null){         for(sqlloja loja : listaloja.values()){             log.d("async25", loja.getnome() );         }     }     else{         log.d("async25", "nao guardou!" );     }      thread timer = new thread(){         public void run(){             try{                 sleep(3000);             }catch (interruptedexception e) {                 // todo: handle exception                 e.printstacktrace();             }finally{                 intent openmenu = new intent("com.example.basicmaponline.menu"); //isto vem ficheiro androidmanifest.xml o "com.example....."                 openmenu.putextra("listaloja",listaloja);                 startactivity(openmenu);             }         }     };     timer.start(); }  @override protected void onpause() {     // todo auto-generated method stub     super.onpause();     //oursong.release(); //release music , done     finish(); }  //@suppresswarnings("rawtypes") public class loaddatabase extends asynctask<void, void, hashmap<string,sqlloja>>{      @override     protected hashmap<string,sqlloja> doinbackground(void... params) {         // todo auto-generated method stub          hashmap<string,sqlloja>listalojas = new hashmap<string, sqlloja>();     try{             postgresql psql = new postgresql(host,db, username, password);         string sql = psql.getlojascidadao();         statement st = psql.getconnection().createstatement();         resultset rs = st.executequery(sql);          log.d("async2","entrei na thread asynctask");          while(rs.next()){             int lcid = integer.parseint(rs.getstring(1));             string lcnome=rs.getstring(2);             string lccp = rs.getstring(3);             int lcdistrito = integer.parseint(rs.getstring(4));             int lcconselho = integer.parseint(rs.getstring(5));             double lcaltitude = double.parsedouble(rs.getstring(6));             double lclongitude = double.parsedouble(rs.getstring(7));             string lctelefone = rs.getstring(8);             boolean lcestado = boolean.parseboolean(rs.getstring(9));             string lcrua = rs.getstring(10);              sqlloja loja = new sqlloja(lcid,lcnome,lccp,lcdistrito,lcconselho,lcaltitude,lclongitude,lctelefone,lcestado,lcrua);              listalojas.put(loja.getnome(),loja.clone());              string informacoesloja = "rua : "+lcrua+"\nc.p. : "+lccp+"\ntel. : "+lctelefone;              log.d("async",lcnome+" altitude = "+lcaltitude+" longitude = "+lclongitude+" rua = "+lcrua);         }         //listaloja = new sqllistloja(listalojas);         rs.close();         st.close();      } catch (sqlexception e) {         // todo auto-generated catch block         e.printstacktrace();     } catch (classnotfoundexception e) {         // todo auto-generated catch block         e.printstacktrace();     } catch (exception e) {     e.printstacktrace();     }      if(listalojas!=null){         log.d("async","entrei no if da listalojas");         for(sqlloja loja : listalojas.values()){             log.d("async", loja.getnome() );         }     }     else log.d("async","listaloja nula ! pqp !");           return listalojas;     }      @override     protected void onpostexecute(hashmap<string,sqlloja> listalojas){         listaloja = listalojas;         for(sqlloja loja : listaloja.values()){             log.d("async24", loja.getnome() );         }      }  }  } 

i'm not sure but, think return value asynctask isn't made right way although working on android application. opinions welcomed. thank ! :)

when use asynctask create class instance implement methods, , when want use, create variable asynctask method .start(); if i'm no mistaken. , create progressdialog.


Comments

Popular posts from this blog

python - How to create a legend for 3D bar in matplotlib? -

java - Multi-Label Document Classification -

php - Dynamic url re-writing using htaccess -