В моем приложении есть набор данных -Definition
(в основном Strings
, Enums
и флаги - т.е. ничего большого), которые динамически (т.е. не могут быть жестко закодированы в действие службы) определяют, как IntentService
должен обрабатывать его ввод.
Моя основная проблема заключается в том, что вместо того, чтобы загружать эти структуры Definition
из их XML-файла каждый раз, когда Intent
передается в Service
, я хотел бы хранить их в памяти (поскольку они малы и желателен быстрый доступ из-за вызываемой службы очень часто) и использовать Definition
, находящиеся в оперативной памяти, для обработки Intents
по мере их получения Service
.
Логически, все, что я могу придумать, это постоянный фон Service
, для которого есть множество источников, говорящих, что это плохая идея (с чем я согласен).
По сути, я ищу способ хранить эти данные в ОЗУ до тех пор, пока они не потребуются (как система Android делает с открытыми приложениями, пусковыми установками и т. д.), и не иметь какого-либо неблагоприятного влияния на срок службы батареи (т.е. Service
делает < strong>ничего, кроме хранения данных в ОЗУ до вызова), но быть доступным всякий раз, когда вызывается мой Service
?
Есть ли какой-нибудь возможный способ добиться этого или это единственный вариант - постоянный Service
, которым я должен управлять очень осторожно?
Если постоянный Service
является ответом, будет ли IntentService
(настроенный на START_STICKY
) просто сидеть в ОЗУ и не влиять на срок службы батареи, пока он не будет передан Intent
?