public
class
MainActivity
extends
Activity
implements
OnClickListener
{
private
Handler mHandler;
private
TextView textView;
/**
* 1.继承ItentService类的public myservice()构造方法必须存在
* 2.如果已经startservice,再次start的话,会调用onbindservice
* 3.线程深入封装:HandlerThread和IntentService
* 4.IntentService:
* class MyService extends IntentService
* {
* public MyService()
* {
* super("xxx");
* }
* onHandleMessage()
* {
* // 在"xxx"线程处理耗时操作
* }
* onBind()
* }
*/
@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
);
findViewById(R.id.button3).setOnClickListener(
this
);
textView = (TextView) findViewById(R.id.textView1);
}
@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
;
case
R.id.button3:
btn3Click();
break
;
default
:
break
;
}
}
private
void
btn3Click()
{
new
Thread(
"子线程2"
)
{
@Override
public
void
run()
{
Message msg =
new
Message();
msg.obj =
30
;
mHandler.sendMessage(msg);
}
}.start();
}
private
void
btn2Click()
{
Message msg =
new
Message();
msg.arg2 =
20
;
mHandler.sendMessage(msg);
}
private
void
btn1Click()
{
try
{
Thread.sleep(
5000
);
}
catch
(InterruptedException e)
{
e.printStackTrace();
}
new
Thread(
"子线程"
)
{
@Override
public
void
run()
{
Looper.prepare();
mHandler =
new
Handler()
{
public
void
handleMessage(android.os.Message msg)
{
String threadname = Thread.currentThread().getName();
Log.e(
"handler"
,
"threadname:"
+ threadname +
" msg_1:"
+ msg.arg1 +
" msg_main:"
+ msg.arg2 +
" msg_2:"
+ msg.obj);
};
};
Message msg =
new
Message();
msg.arg1 =
10
;
mHandler.sendMessage(msg);
Looper.loop();
}
}.start();
}
}