我正在使用asynctask来运行客户端协议。 asynctask工作正常,但需要(非常明显的)几秒钟才能开始运行。
我做了一些调试,调用执行的按钮会突然显示几秒钟,然后onPreExecute()触发,我运行的进程条开始。
所以我的问题很简单:Asynctask总是这么慢,或者是否有可能出现某种问题?
这是有问题的按钮(和onClickListener)。此代码可在onCreate(Bundle SavedInstanceState)中找到:
mSave = (Button)findViewById(R.id.btnSave);
mSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getBaseContext(),
"marker", Toast.LENGTH_LONG).show();
if (portrait != null && !mComments.getText().toString().equals("")) {
for (int i = 0; i < 6; i++) {
checked[i] = checkBoxes[i].isChecked();
checkBoxFields[i] = checkBoxes[i].getText().toString();
}
new ClientProtocol().execute();
}
}
});
这里是onPreExecute(),虽然我很确定暂停在此之前的某个地方:
@Override
protected void onPreExecute() {
mProgress = 0;
mLoad.setVisibility(View.VISIBLE);
mSave.setClickable(false);
mFinal = "";
mClientThoughts = mComments.getText().toString();
mCheckBoxes = checkBoxFields;
mChecked = checked;
mBaos = new ByteArrayOutputStream();
portrait.compress(Bitmap.CompressFormat.PNG, 100, mBaos);
mClientImage = mBaos.toByteArray();
}
答案 0 :(得分:1)
从您的描述看起来似乎延迟甚至在您的onPreExecute()触发之前?是否有可能延迟按钮处理(可能是处理程序?)导致此问题?