问题描述:UI中btn的一个响应有耗时操作,另起线程来执行,UI依然有卡顿
代码描述如下:
public class MyActivity extends Activity {
Button btnSend;
protected void onCreate(Bundle savedInstanceState) {
.....
btnSend=(Button) findViewById(R.id.btn_send);
btnSend.setOnclickListener(mListener);
}
OnClickListener mListener=new new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(sendable).start();
}
}
Runnable sendable = new Runnable() {
@Override
public void run() {
String data="data";
sendRemote(data);
}
}
/***因为具体的发送方法在服务里,所以此处传递消息给
****服务处理,发送函数是一个耗时操作,发送之后等待回复或等至超时***/
private void sendRemote(String strData){
Intent iSend=new Intent("send");
iSend.putExtra("data", msg);
startService(iSend);
}
}
在这种情况下会有一个明显的卡顿,我的疑问是:
1、另起线程并没有完全将耗时程序从UI中剥离开来吗?
2、即使未剥离开,UI线程启动服务的操作也要一直等到 服务按要求启动并执行相应的步骤(此处为发送信息)之后才算完成吗?要不然也不应该卡顿啊
求高手指点,谢谢