[android]_[Async异步任务使用]

来源:互联网 发布:淘宝网智能手机 编辑:程序博客网 时间:2024/06/05 23:49

android提供了一套专门用于异步处理的类。即:AynsTask类。使用这个类可以为耗时程序开辟一个新线程进行处理,处理完时返回。

asysTask类主要用到的几个内部回调函数有:
  doInBackGround()

onPreExecute()

onPostExecute()

onProgressUpdate()

执行顺序如下图:



public class AnsyTestActivity extends Activity {    /** Called when the activity is first created. */       TextView text =null;    Button button=null;    String str=null;    AnsyTry anys=null;    double result=0;       @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        text=(TextView) findViewById(R.id.text);        button=(Button) findViewById(R.id.button);        str="wei";        button.setOnClickListener(new OnClickListener() {                       @Override            public void onClick(View v) {                // TODO Auto-generated method stub                anys=new AnsyTry(text);                anys.execute(str);                           }        });    }          class AnsyTry extends AsyncTask<String, TextView, Double>{               TextView te=null;               public AnsyTry(TextView te) {            super();            this.te = te;        }        @Override        protected Double doInBackground(String... params) {            // TODO Auto-generated method stub            double dou=0;            if(params[0].equals("wei")){                System.out.println(Thread.currentThread().getName()+"  recive wei");                dou=100;            }            publishProgress(te);            return dou;        }        @Override        protected void onPostExecute(Double result) {            // TODO Auto-generated method stub            super.onPostExecute(result);            System.out.println("postExecute---double---"+result);        }        @Override        protected void onPreExecute() {            // TODO Auto-generated method stub\            System.out.println("pretExecute------");            super.onPreExecute();        }        @Override        protected void onProgressUpdate(TextView... values) {            // TODO Auto-generated method stub            values[0].setText(values[0].getText()+"1");            super.onProgressUpdate(values);        }           }}


0 0
原创粉丝点击