Сервис Android должен хранить данные для запроса от других классов

1

У меня есть служба, работающая в фоновом режиме. Он извлекает несколько строк по IP. Он должен усекать их и координировать их с некоторыми переменными.

Поэтому я подумал:

public class Listener extends Service{
public void main(){
//fetch and preprocess data
data=fetched_string;
}

public String data=null;
public String getData(){return data;}

}

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

Или, может быть, есть более элегантное решение для Android?

Теги:
getter-setter
service

2 ответа

1
Лучший ответ

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

0

Глобальная переменная, живущая в одноэлементном классе, презирается архитекторами-нацистами, но на самом деле использует android. Он доступен для всех классов вашего приложения, так как они работают в одной виртуальной машине, но не смогут перезагрузить приложение.

Для хранения данных за перезапуски есть 3 варианта - общие настройки (для небольших объемов данных) - sqlite, если их много, данные не очень структурированы, и вам действительно нужна сортировка/запрос - сериализуйте его в JSON с помощью решения для привязки данных по вашему выбору (создайте собственную рекламу на https://github.com/ko5tik/jsonserializer) и сохраните ее в файле, если данные структурированы, и вам нравится иметь объекты

Ещё вопросы

Сообщество Overcoder
Наверх
Меню