Вход/Регистрация
Сборник тестов: 1500 вопросов и ответов на знание Android
вернуться

Машнин Тимур Сергеевич

Шрифт:

startForeground (int id, Notification notification), используйте эту функцию в оnCreate вашего сервиса.

Вопрос 9

Мое приложение имеет только сервис, и мой сервис выполняет тяжелую функциональность подключения к Интернету и получения данных, должен ли я создать поток или нет? Если это так, почему?

Да потому что сервис по умолчанию, без каких-либо потоков, использует основной поток.

Да потому что, если сервис и активность работают в одном потоке, это может привести к ANR ошибке.

Нет, вам не нужно создавать поток, потому что сервис создаст фоновый поток, когда кто-то запускает сервис.

Нет необходимости создавать новый поток в сервисе, это не требуется в этом случае. Потому что сервис работает в главном потоке. Так как наше приложение не имеет какой-либо активности, все будет ОК, если запустить сервис в главном потоке.

Вопрос 10

Как передать данные от активности сервису?

Передать данные в putextras намерения и использовать setResult .

Передать данные в putextras намерения и использовать startService с этим намерением.

Сохранить данные в общую базу данных и обеспечить доступ к ним как из активности, так и из сервиса.

Все перечисленное.

Вопрос 11

Как получить доступ к прогресс бару из сервиса?

Отправить ProgressBar идентификатор с помощью intent extras и получить доступ к нему в сервисе.

Сделать индикатор как статическую переменную в активности и получить доступ к переменной в сервисе.

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

Поместить все элементы управления пользовательского интерфейса в общем классе и получить к нему доступ из всех компонентов.

Вопрос 12

Какие значения возвращает метод onStartCommand и когда они используются?

START_STICKY – в случае, если Android останавливает наш сервис силой, а затем перезапускает сервис, посылая нулевое намерение.

START_NOT_STICKY – в случае, если Android останавливает наш сервис силой, не перезапуская сервис, пока пользователь сам не перезапустит его.

START_REDELIVER_INTENT – в случае, если Android останавливает наш сервис силой, а затем перезапускает сервис, посылая повторно намерение.

Все перечисленное.

Вопрос 13

Как контролировать состояние подключения bound service?

Используя метод isServiceConnected , который возвращает истину, если сервис подключен.

Используя метод onServiceDisConnected , эта функция будет вызываться, если соединение нарушается.

Клиент может опрашивать сервис, доступен он или нет.

Используя класс ServiceConnection.

Вопрос 14

Предположим, мой сервис поддерживает и starting service и binding service, и в настоящее время два клиента запустили мой сервис и один клиент связался с моим сервисом. Через 5 минут клиент, который был связан с моим сервисом, отвязывается, а другой клиент останавливает мой сервис. В настоящее время мой сервис работает в памяти или выведен из памяти?

Сервис умер, но до сих пор в памяти.

Сервис мертв и выведен из памяти.

Сервис по-прежнему жив и в памяти.

Сервис все еще жив, но выведен из памяти.

Вопрос 15

Как реализовать IPC (inter process communication), используя Binder?

1. Создать сервис, реализовать оnCreate , onBind , onUnbind , оnDestroy 

2. Создать файл. aidl с интерфейсными функциями.

3. Реализовать автоматический генерируемый Binder класс заглушки в сервисе.

4. Возвратить объект этого класса заглушки из onBind .

1. Создать сервис, реализовать оnCreate , onBind , onStartCommand , onUnbind , оnDestroy .

2. Создать файл. aidl с интерфейсными функциями.

3. Реализовать автоматически генерируемый Binder класс заглушки в сервисе.

4. Возвратить объект этого класса заглушки из onStartCommand .

1. Создать сервис, реализовать оnCreate , onBind , onStartCommand , onUnbind , оnDestroy .

2. Создать внутренний класс в классе сервиса, который расширяет класс Binder.

  • Читать дальше
  • 1
  • ...
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: