Android UI刷新

来源:互联网 发布:淘宝鹰眼原理 编辑:程序博客网 时间:2024/05/10 22:56

1.
更新UI

Handler mHandler = new Handler(); mHandler.post(new Runnable() {            @Override            public void run() {            //更新UI操作             mTextView.setText("我是在Handler中post方法更新");            }        }); //此方法原理  就是给MessageQueue发送一条消息public final boolean post(Runnable r){   return  sendMessageDelayed(getPostMessage(r), 0); }

2.

 private void refreshInRunInUiThread(Activity activity) {        activity.runOnUiThread(new Runnable() {            @Override            public void run() {                mTextView.setText("我是在runInUIRefesh方法更新");            }        });    } //此方法原理为调用Handler对象的post方法 如下 public final void runOnUiThread(Runnable action) {        if (Thread.currentThread() != mUiThread) {            mHandler.post(action);        } else {            action.run();        }    }

3.利用AsyncTask

                             //AsyncTask<Params, Progress, Result> class AsyncTaskThread extends AsyncTask<String, Integer, Bitmap> {        @Override        protected Bitmap doInBackground(String... params) {            publishProgress(0);            HttpClient client = new DefaultHttpClient();            publishProgress(30);            HttpGet get = new HttpGet(params[0]);            final Bitmap bitmap;            try {                HttpResponse response = client.execute(get);                bitmap = BitmapFactory.decodeStream(response.getEntity()                        .getContent());            } catch (Exception e) {                return null;            }            publishProgress(100);            return bitmap;        }        protected void onProgressUpdate(Integer... progress) {            mProgressBar.setProgress(progress[0]);        }        protected void onPostExecute(Bitmap result) {            if (result != null) {             //更新UI                mImageView.setImageBitmap(result);            }         }        protected void onPreExecute() {            mImageView.setImageBitmap(null);            mProgressBar.setProgress(0);        }        protected void onCancelled() {            mProgressBar.setProgress(0);        }    }    @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;    }}
0 0
原创粉丝点击