android教程之使用asynctask在后台运行耗时任务

2019-12-10 20:10:33王振洲

        @Override  
        protected String doInBackground(String... params) {   
            try{
                    if (DataOper.GetTopNearestPOIs(1, mDBHelper).size()==0)
                            DataOper.GetAllPtsFromNet(mDBHelper, pdialog); // 从网络上下载数据记录的功能
            } catch(Exception e) {   
                    e.printStackTrace();
            }   
            return null;
        }

        @Override  
        protected void onCancelled() {   
            super.onCancelled();   
        }   

        @Override  
        protected void onPostExecute(String result) {   
            pdialog.dismiss();    
        }   

        @Override  
        protected void onPreExecute() {
        }   

        @Override  
        protected void onProgressUpdate(Integer... values) {    
        }  
     }   

 

对于写好的异步任务类,调用方法为:

 

复制代码
DownloadDBTask task = new DownloadDBTask(context);   
task.execute("");

 

注意AsyncTask为泛型类,具有三个泛型参数,此处设计为 <String, Integer, String>,对应于运行参数、进度值类型和返回参数。