由于性能要求,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(BundlesavedInstanceState) {
10.super.onCreate(savedInstanceState);
11.setContentView(R.layout.activity_main);
12.tv =(TextView) findViewById(R.id.tv);
13.newYibu().execute();
14.}
15.class Yibu extends AsyncTask
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的性能测试,我比较常用的是这个平台:www.ineice.com