android: как запустить сервис отдельно от приложения и обменяться с ним объектом? - PullRequest
0 голосов
/ 17 мая 2011

По сути, у меня есть приложение, которое требует загрузки (около 20 индексных файлов) в начале приложения, чтобы выполнить мгновенный поиск позже в приложении. Хотя в целом индексные файлы составляют всего несколько сотен К, поскольку декомпрессия должна быть выполнена, загрузка на самом деле занимает некоторое время. Поэтому мне интересно, возможно ли сохранить его в памяти, запустив службу? Я написал локальный сервис в одном пакете с моим приложением. И когда я принудительно закрываю свое приложение, мой сервис тоже закрывается. Должен ли я использовать удаленный сервис? если так, то, что я должен сделать, это когда я открываю свое приложение, оно должно иметь возможность получить 1 int [] и 1 ArrayList из сервиса, это выполнимо? или есть еще варианты получше? Большое спасибо

1 Ответ

1 голос
/ 17 мая 2011

Имейте в виду - вы разрабатываете для мобильного телефона.Память ограничена.Ваше приложение не будет единственным приложением, которое будет запускать пользователь.Постоянно пытаться использовать память в интересах вашего собственного приложения - плохая практика.Пользователь не захочет, чтобы ваша служба работала постоянно.

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

Вы можете записать распакованный индексный файл во внешнее хранилище или сжать его порциями, чтобы вы могли обойтись без распаковки всей вещи.

Если вы действительно считаете, что это важная функция для вашего приложения, сделайте ее необязательной в настройках и добавьте службу (возможно, даже при использовании широковещательного приемника при загрузке, если ваше приложение так важно для пользователя) для загрузки и распаковкиданные.Но я бы очень рекомендовал не иметь сервис для хранения, если это то, что вы планируете использовать.

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