public
class
MainActivity
extends
Activity
implements
OnClickListener
{
TextView textView =
null
;
private
ProgressBar mProgress_yuan;
private
ProgressBar mProgress_jindu;
private
final
int
MSG_WHAT_DOWNLOAD =
1
;
private
final
int
MSG_WHAT_UPDATE =
2
;
private
final
int
MSG_WHAT_PROGRESS =
3
;
private
Handler mHandler =
new
Handler()
{
@Override
public
void
handleMessage(Message msg)
{
switch
(msg.what)
{
case
MSG_WHAT_DOWNLOAD:
Data data = (Data) msg.obj;
textView.setText(data.toString());
mProgress_jindu.setVisibility(View.GONE);
break
;
case
MSG_WHAT_UPDATE:
String str = (String) msg.obj;
textView.setText(str);
mProgress_yuan.setVisibility(View.GONE);
break
;
case
MSG_WHAT_PROGRESS:
int
arg = msg.arg1;
mProgress_jindu.setProgress(arg);
break
;
default
:
break
;
}
}
};
@Override
protected
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(
this
);
findViewById(R.id.button2).setOnClickListener(
this
);
textView = (TextView) findViewById(R.id.textView1);
mProgress_yuan = (ProgressBar) findViewById(R.id.progressBar1);
mProgress_jindu = (ProgressBar) findViewById(R.id.progressBar2);
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.activity_main, menu);
return
true
;
}
@Override
public
void
onClick(View v)
{
switch
(v.getId())
{
case
R.id.button1:
btn1Click();
break
;
case
R.id.button2:
btn2Click();
break
;
default
:
break
;
}
}
private
void
btn1Click()
{
mProgress_jindu.setVisibility(View.VISIBLE);
new
Thread()
{
@Override
public
void
run()
{
Message message =
new
Message();
message.what = MSG_WHAT_DOWNLOAD;
message.obj = download();
mHandler.sendMessage(message);
}
}.start();
}
private
void
btn2Click()
{
mProgress_yuan.setVisibility(View.VISIBLE);
new
Thread()
{
@Override
public
void
run()
{
try
{
Thread.sleep(
3000
);
String str = update();
Message msg =
new
Message();
msg.what = MSG_WHAT_UPDATE;
msg.obj = str;
mHandler.sendMessage(msg);
}
catch
(InterruptedException e)
{
e.printStackTrace();
}
}
}.start();
}
private
Data download()
{
for
(
int
i =
0
; i <
10
; i++)
{
Message msg = mHandler.obtainMessage();
msg.what = MSG_WHAT_PROGRESS;
msg.arg1 = i *
10
;
mHandler.sendMessage(msg);
try
{
Thread.sleep(
1000
);
}
catch
(InterruptedException e)
{
e.printStackTrace();
}
}
Data data =
new
Data(
"下载完成!"
,
12
);
return
data;
}
private
String update()
{
return
"更新完成!"
;
}
class
Data
{
String name;
int
num;
public
Data(String name,
int
num)
{
super
();
this
.name = name;
this
.num = num;
}
@Override
public
String toString()
{
return
"data [name="
+ name +
", num="
+ num +
"]"
;
}
}
}