android AsyncTask入门

简介: android AsyncTask入门

要使用这个东西,要new AsyncTask. 此时相当与启动个新线程. 你需要重载doInbackground 这个东西相当与run 方法。开始执行后台操作.

操作完了后 onPostExecute这个函数更新画面.

大家喜欢例子.那来笆.

package com.nuaa;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ProgressBar;
import android.widget.TextView;
public class Main extends Activity {
      /** Called when the activity is first created. */
    ProgressBar pb;
    TextView tv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        pb=(ProgressBar)findViewById(R.id.pb);
        tv=(TextView)findViewById(R.id.tv);
        updatePb uptask=new updatePb();
        uptask.execute(100);
        //后面的按定义是线程休息时间,即每100MS,进度加1
    }
    class updatePb extends AsyncTask<Integer,Integer,String>{
        //后面尖括号内分别是参数(例子里是线程休息时间),进度(publishProgress用到),返回值 类型
        protected String doInBackground(Integer... params) {
            // TODO Auto-generated method stub
            for(int i=0;i<=100;i++){
                pb.setProgress(i);
                publishProgress(i,5);
                try {
                    Thread.sleep(params[0]);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return "谢谢使用!";
        }
        protected void onProgressUpdate(Integer... progress) {
            tv.setText(String.valueOf(progress[0]));
            //这个函数在doInBackground调用publishProgress时触发,虽然调用时只有一个参数
            //但是这里取到的是一个数组,所以要用progesss[0]来取值
            //第n个参数就用progress[n]来取值
        }
        protected void onPostExecute(String result) {
            setTitle(result);
            //doInBackground返回时触发,换句话说,就是doInBackground执行完后触发
            //这里的result就是上面doInBackground执行后的返回值,所以这里是"执行完毕"
        }
    }
}

有这个例子,有这个注释.因该很清楚了.清楚什么啊.

清楚里面的过程吗?清楚线程池如何管理的吗?清楚onPressupdate onpostExecute 为什么跑在ui 线程里吗?

相关文章
|
5天前
|
Java 数据库 Android开发
Android异步之旅:探索AsyncTask
Android异步之旅:探索AsyncTask
25 0
|
2天前
|
数据库 Android开发
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
|
3天前
|
Android开发
Android中的多线程及AsyncTask的引入,最终入职阿里
Android中的多线程及AsyncTask的引入,最终入职阿里
|
4天前
|
数据库 Android开发
android AsyncTask
android AsyncTask
18 1
|
5天前
|
Java Android开发
Android 中的AsyncTask的使用心得
Android 中的AsyncTask的使用心得
12 1
|
5天前
|
Android开发 开发者
Android AsyncTask 的使用
Android AsyncTask 的使用
12 1
|
5天前
|
安全 API 数据库
【转】Android线程模型(AsyncTask的使用)
【转】Android线程模型(AsyncTask的使用)
13 1
|
5天前
|
Android开发
Android游戏引擎AndEngine入门资料
Android游戏引擎AndEngine入门资料
14 3
|
5天前
|
Java API 开发工具
java与Android开发入门指南
java与Android开发入门指南
16 0
|
5天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android&#39;s AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
12 0