Является ли Android Asynctask всегда так медленно - PullRequest
1 голос
/ 14 июля 2011

Я использую 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();
}

1 Ответ

1 голос
/ 14 июля 2011

Из вашего описания кажется, что задержка еще до того, как ваш onPreExecute () срабатывает? Возможно, что-то задерживает вашу обработку кнопок (возможно, обработчик?), Вызывая это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...