Активность Android к сервису - PullRequest
0 голосов
/ 26 февраля 2011

Действия имеют методы-обработчики, такие как onClick для различных событий пользовательского интерфейса.Как можно гарантировать, что сервисное соединение существует для этих методов?У подключения службы есть метод onServiceConnected для инициализации после подключения службы.Однако это кажется не лучшим местом для инициализации пользовательского интерфейса.Я хочу, чтобы onClick (View v) {service.getValue ()} не был пустой ссылкой на службу.С другой стороны, я не хочу, чтобы рендеринг пользовательского интерфейса зависел от ожидания ссылки на службу.Кажется, что onCreate () - правильное место для setContentView () и т. Д. С другой стороны, onCreate инициализирует обработчики, которые еще могут не использовать действительную ссылку на службу.Как можно гарантировать, что ссылка на службу действительна для методов обработчика пользовательского интерфейса.Или это хорошая причина вообще не использовать сервисную ссылку?Какова лучшая практика здесь?

Ответы [ 2 ]

3 голосов
/ 26 февраля 2011

Вы должны сообщить в Activity, что служба готова.

Самый простой способ - установить флаг, например serviceAvailable = true, в ServiceConnection.onServiceConnected ().Затем каждый раз, когда вам нужно обслуживание, вы отмечаете этот флаг.

0 голосов
/ 26 февраля 2011

В приемнике событий пользовательского интерфейса вы можете проверить, является ли ссылка на службу нулевой, прежде чем использовать ее:

if (service != null)
{
    service.getValue();
}
...