AsyncTask异步

来源:互联网 发布:php 网盘 程序 编辑:程序博客网 时间:2024/06/11 07:05
**我个人认为,异步是省略了,线程new Thread(){}.start(), 以及不用我们定义handler,重写handler中的方法,直接在AnysTask中直接对我们要解析的 数据,处理,并更新UI界面在AnysTask中我们经常用到了,四个方法:1. onPreExecute()://        开启线程之前的数据2.doInBackground(String... params)://请求网络数据3.onPostExecute(Bitmap result)//    获取子线程上的数据,并展示更新UI界面4.onProgressUpdate(String... values)://     在主线程中更新**
public class MainActivity extends Activity {    private ProgressBar pb;    private ImageView image;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        pb = (ProgressBar) findViewById(R.id.p_pb);        image = (ImageView) findViewById(R.id.i_image);    }    public void search(View view){        MyAsyncTask as=new MyAsyncTask();        as.execute("http://10.1.7.114:8080/image/r.jpg");    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    public class MyAsyncTask extends AsyncTask<String, String, Bitmap> {        //请求网络数据        @Override        protected Bitmap doInBackground(String... params) {            // TODO Auto-generated method stub            return getData(params[0]);        }//      获取子线程上的数据,并展示        @Override        protected void onPostExecute(Bitmap result) {            // TODO Auto-generated method stub            super.onPostExecute(result);            pb.setVisibility(View.GONE);            image.setImageBitmap(result);        }//      开启线程之前的数据        @Override        protected void onPreExecute() {            // TODO Auto-generated method stub            pb.setVisibility(View.VISIBLE);            super.onPreExecute();        }//      在主线程中更新        @Override        protected void onProgressUpdate(String... values) {            // TODO Auto-generated method stub            super.onProgressUpdate(values);        }    }       public Bitmap getData(String path){        BitmapUtils u=new BitmapUtils(this);        u.display(image, path);        return null;    }}
2 0
原创粉丝点击