UI线程和主线程只是同一线程的不同名称。
应用程序的所有UI膨胀都在此主线程上完成。之所以将“较重”的工作委派给其他线程,是因为我们不希望这些操作减慢UI的响应性和膨胀时间。
您将要运行任何更改UI或修改UI在主线程上使用的对象的操作。
一个带有AsyncTask的例子
package com.wolfdev.warriormail;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;public class LoginActivity extends Activity implements OnClickListener{ private Button loginButton; private EditText eText; private EditText pText; private CheckBox box; private String user; private String pass; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.login); //Initialize UI objects on main thread loginButton = (Button) findViewById(R.id.button1); loginButton.setonClickListener(this); eText = (EditText) findViewById(R.id.editText1); pText = (EditText) findViewById(R.id.editText2); eText.clearFocus(); pText.clearFocus(); Animation fadeIn = AnimationUtils.loadAnimation(this,R.anim.fadeanimation); Animation slideIn = AnimationUtils.loadAnimation(this, R.anim.slideanimation); eText.startAnimation(slideIn); pText.startAnimation(slideIn); box = (CheckBox)findViewById(R.id.checkBox1); box.startAnimation(fadeIn); login.startAnimation(fadeIn); } @Override public void onClick(View v) { user = email.getText().toString(); password = pass.getText().toString(); } class LoginTask extends AsyncTask<Void,Void,Void>{ @Override protected Void doInBackground(Void... args){ return null; } @Override protected void onPostExecute(Void result){ } }}


