Создать словарь для использования в Android - PullRequest
0 голосов
/ 29 сентября 2018

Я хочу создать словарь, который отображает две строки примерно так: «имя-пакета», «игра»

Я знаю, что это можно сделать с помощью следующего кода:

HashMap<String, String> map = new HashMap<>();
 map.put("app_package_name","game");

Итак, в моем приложении есть служба, которая вносит изменения в зависимости от типа приложения, который определяется его значением.Кажется, что я не могу объявить карту как статическую глобальную переменную для использования всем классом обслуживания, что может означать, что каждый раз, когда моя служба запускается в приложении для обслуживания намерения, карта воссоздается, и новые пары ключ-значение будутпоставить снова?

Как мне это сделать, если я хочу просто объявить карту и поставить все один раз, тогда, когда я обрабатываю намерение службы, мне просто нужно обратиться к объекту карты и дважды проверить его ключ?Есть ли лучший способ сделать это?

PS Я бы предпочел придерживаться словарей, если это возможно.

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

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

0 голосов
/ 29 сентября 2018

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

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