Я использую HTC Hero с HTS sense.
У меня есть опыт, что иногда AsyncTask не запускает метод doInBackground при выполнении ();
Это появляется только на моем герое. Кто-нибудь сталкивался с такой же проблемой?

/ Мартин

2
f0rz 5 Мар 2010 в 12:03

2 ответа

Лучший ответ

Это не проблема, но при разработке для HTC Hero я обнаружил несколько ошибок, которых нет ни в одной ванильной версии Android.

А именно, намерение исходящего вызова не отправляется, когда вызов набирается из программы набора номера HTC Sense, это в последней сборке HTC Hero, а не в более ранних.

И значок телефона появляется на экране недавно использованных приложений вместе со значком номеронабирателя, который при нажатии (значок номеронабирателя) вызывает серьезные проблемы.

Свяжитесь с HTC с описанием вашей ошибки и предоставьте им журналы, я сделал это с ошибками, которые обнаружил.

Это было почти 2 недели назад, но отзывов у меня не было.

1
Donal Rafferty 5 Мар 2010 в 13:05

Что вам нужно сделать, так это добавить флаг @Override к doInBackground (Void ... params) {}; функция, чтобы гарантировать, что она действительно переопределяет функцию по умолчанию.

Подобно:

@Override
public Void doInBackground(String... params) {
 // Do something
}

Важное примечание - сопоставить классы параметров функций с теми, которые определены в вашем определении класса.

public class FetcherManager extends AsyncTask<Url, Integer, Long>{};

@Override
public Long doInBackground(Url... params) {
    // Do things
};

@Override
protected void onProgressUpdate(Integer... progress) {
   // Do things
}

@Override
protected void onPostExecute(Long result) {
   // Do things
}
1
Robert Foss 13 Апр 2010 в 16:45