Я использую asynctask для запуска клиентского протокола.Asynctask работает нормально, однако для его запуска требуется (очень заметно) несколько секунд.
Я выполнил некоторую отладку, и кнопка, которая вызывает execute, остается подсвеченной в течение нескольких секунд, затем срабатывает 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();
}