1
.MainActivity的内容
import
android.os.Bundle;
import
android.app.Activity;
import
android.view.Menu;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.ProgressBar;
import
android.widget.TextView;
public
class
MainActivity
extends
Activity {
private
TextView textview;
private
Button button;
private
ProgressBar bar;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findview();
setview();
}
private
OnClickListener beginPro =
new
OnClickListener() {
@Override
public
void
onClick(View v) {
FirstAsyncTask fat =
new
FirstAsyncTask(textview,bar);
fat.execute(
1000
);
}
};
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return
true
;
}
public
void
findview(){
textview = (TextView)findViewById(R.id.textview);
button = (Button)findViewById(R.id.button);
bar = (ProgressBar)findViewById(R.id.progressbar);
}
public
void
setview(){
button.setOnClickListener(beginPro);
}
}
2
.添加FirstAnsyicTask类,其中中的代码如下:
import
android.os.AsyncTask;
import
android.widget.ProgressBar;
import
android.widget.TextView;
public
class
FirstAsyncTask
extends
AsyncTask<Integer, Integer, String>{
private
TextView textview;
private
ProgressBar bar;
public
FirstAsyncTask(TextView textview,ProgressBar progressbar){
this
.textview = textview;
this
.bar = progressbar;
}
@Override
protected
String doInBackground(Integer... params) {
UIOperator op =
new
UIOperator();
int
i;
for
(i=
0
;i<=
100
;i+=
10
){
op.operator();
publishProgress(i);
}
return
i+params[
0
].intValue()+
""
;
}
@Override
protected
void
onPostExecute(String result){
textview.setText(
"异步操作执行结束"
+result);
}
@Override
protected
void
onPreExecute(){
textview.setText(
"开始执行异步操作"
);
}
@Override
protected
void
onProgressUpdate(Integer... values){
int
value = values[
0
];
bar.setProgress(value);
}
}
3
.创建一个很简单的操作类
public
class
UIOperator {
public
void
operator(){
try
{
Thread.sleep(
1000
);
}
catch
(InterruptedException e){
e.printStackTrace();
}
}
}