Слушатель в службе Android и stopSelf () возникают слишком рано - PullRequest
0 голосов
/ 04 июля 2011

Рассмотрим такой код Android в Сервисе, реализующем Слушатель (события от датчика ориентации):

public void onStateChanged()
{
    //do some work
    stopSelf();
}

Я хочу, чтобы служба умерла ПОСЛЕ запуска метода onStateChanged() и ПОСЛЕ того, как выполняется его код. Однако он умирает слишком рано - stopSelf() вызывается ДО того, как "//do some work" произойдет. Если я сделаю перерыв во время отладки где-нибудь внутри "//do some work", все работает нормально - код выполняется, а сервис умирает. Если я удаляю stopSelf() - код выполняется. Если я запускаю его так, как описано выше - НИЧЕГО из "//do some work" не будет сделано. Это почему? Как это возможно?

1 Ответ

0 голосов
/ 04 июля 2011

Возможно, они встречаются в другом потоке. Некоторые методы возвращаются сразу, когда их работа выполняется одновременно. Зависит от "работы". Там может быть соответствующий onSomethingCompletedListener, который вы можете использовать. Покажите нам код, который вы пробовали! И попробуйте вставить Log.d ("бла"); заявления, чтобы получить больше информации.

...