В моето приложение имам набор от данни -Definition
(предимно Strings
, Enums
и флагове - т.е. нищо голямо), които динамично (т.е. не могат да бъдат твърдо кодирани в действието на услугата) определят как IntentService
трябва да обработва входа му.
Основният ми проблем е, че вместо да зареждам тези Definition
структури от техния XML файл всеки път, когато Intent
се предава на Service
, бих искал да ги запазя в паметта (тъй като са малки и бързият достъп е желателен поради извикването на услугата много често) и използвайте Definition
s, намиращи се в RAM, за да обработвате Intents
, докато Service
ги получава.
Логично всичко, за което се сещам, е постоянен фон Service
, за който има много източници, които казват, че това е лоша идея (с което съм съгласен).
Предполагам, че по същество това, което търся, е начин да съхранявам тези данни в RAM, докато не са необходими (както системата Android прави с отворени приложения, стартери и т.н.) и да няма неблагоприятно въздействие върху живота на батерията (т.е. Service
прави < силно>нищо освен да задържа данните в RAM до извикване), но да съм на разположение, когато моят Service
бъде извикан?
Има ли някакъв възможен начин това да бъде постигнато или единствената опция е постоянно Service
, което трябва да управлявам изключително внимателно?
Ако постоянен Service
е отговорът, ще IntentService
(конфигуриран да бъде START_STICKY
) просто ще стои в RAM и няма да повлияе на живота на батерията, докато не бъде предадено Intent
?