• android AsyncTask 的基本使用


    1.首先写一个类继承AsyncTask   如:class DownloadTask extends AsyncTask<Parms, Process, Result>,

      parms是执行asynctask传入的参数,是调用doInBackground传入的参数,如:task.execute("First parameter", "Second parameter", "Etc.")如:

    AsyncTask<String,Void,Void> task = new AsyncTask<String,Void,Void>{
    public Void doInBackground(String... params) {
      for (String parameter : params) {
        Log.i(TAG, "Received parameter: " + parameter);
      }
      }
    };
    

      process是 显示当前进度 ,progress是onprogressUpdate方法的参数 ,如

    AsyncTask<Void,Integer,Void> task = new AsyncTask<Void,Integer,Void>{
    public void onProgressUpdate(Integer... params) {   int progress = params[0];   gestationProgressBar.setProgress(progress);   }
    }

       Result是 当任务执行完毕后,对结果进行返回. Result 是doInBackground 的返回值如:

    private class FetchItemsTask extends AsyncTask<Void,Void,List<GalleryItem>>{
    
            @Override
            protected List<GalleryItem> doInBackground(Void... params) {
                return new FlickrFetchr().fetchItems();
            }
    }
    

    2.根据需要复写其中的方法,方法有以下几个:

      Void onPreExecute() 这个方法会在后台任务开始执行之前调用,用于进行一些界面上的初始化操作,比如显示一个进度条对话框等。

      Result doInBackground(Params...)这个方法中的所有代码都会在子线程中运行,我们应该在这里去处理所有的耗时任务。如果需要更新 UI 元素,可以调用 publishProgress(Progress...)方法来完成。

      Void onProgressUpdate(Progress...)当在后台任务中调用了 publishProgress(Progress...)方法后,这个方法就会很快被调用,方法中携带的参数就是在后台任务中传递过来的。

      Void onPostExecute(Result)当后台任务执行完毕并通过 return 语句进行返回时,这个方法就很快会被调用。返回的数据会作为参数传递到此方法中,可以利用返回的数据来进行一些 UI 操作.Result 参数是doInBackground 方法的返回值 .

    3.如果想要启动这个任务,只需编写以下代码即可:new DownloadTask().execute();

  • 相关阅读:
    HDU 3537
    POJ 1175
    POJ 1021 人品题
    POJ 2068
    POJ 2608
    POJ 2960
    poj 1635
    ustc 1117
    ural 1468
    数字游戏
  • 原文地址:https://www.cnblogs.com/IT-lss/p/5661393.html
Copyright © 2020-2023  润新知