A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

由于性能要求,android要求只能在UI线程中更新UI,要想在其他线程中更新UI,给大家介绍一种方式:使用AsyncTask异步任务。

下面用这种方式更新一个TextView:

注:更新UI的操作只能在onPostExecute(String result)方法中。
  1. package com.example.runonuithreadtest;
  2. import android.app.Activity;
  3. import android.os.AsyncTask;
  4. import android.os.Bundle;
  5. import android.widget.TextView;
  6. public class MainActivity extends Activity {
  7. private TextView tv;
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10.   super.onCreate(savedInstanceState);
  11.   setContentView(R.layout.activity_main);
  12.   tv = (TextView) findViewById(R.id.tv);
  13.   new Yibu().execute();
  14. }
  15. class Yibu extends AsyncTask<String, String, String>
  16. {
  17.   @Override
  18.   protected String doInBackground(String... params) {
  19.    try {
  20.     Thread.sleep(2000);
  21.    } catch (InterruptedException e) {
  22.     // TODO Auto-generated catch block
  23.     e.printStackTrace();
  24.    }
  25.    return null;
  26.   }
  27.   @Override
  28.   protected void onPostExecute(String result) {
  29.    // TODO Auto-generated method stub
  30.    tv.setText("更新后的TextView");
  31.   }
  32. }
  33. }
复制代码


当然对APP的性能测试,我比较常用的是这个平台:http://www.ineice.com

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马