Ошибка в Android 2.1 в async-теме? - PullRequest
       0

Ошибка в Android 2.1 в async-теме?

0 голосов
/ 13 января 2012

Я использую Handler и HandlerThread для выполнения асинхронной загрузки в моем приложении, но что-то идет не так, например:

handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        .....................
    }

}, 100);

этот обработчик (sic) в новом HandlerThread и создается в onCreate().

Кажется, что это не проблема, однако бывают случаи, когда появляется ошибка, одним из примеров является NullPointerException, вызванный этим обработчиком - он стабилен раньше - но когда я тестирую на эмуляторе версии 2.1, это случается раз, и я не могу решить это, ты, кто может мне помочь?

1 Ответ

1 голос
/ 15 января 2012

Вы рассматривали условия гонки в своем коде? Похоже, код обработчика не выполняет надлежащую синхронизацию - и может иногда видеть изменения из другого потока - что снова вызывает исключение nullPointer.

попробуйте поместить код проблемы в синхронизированный блок - или, если вы используете только примитивные типы - перейдите к энергозависимым или атомарным типам.

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