В настоящее время я работаю над приложением, которое состоит из фонового IntentService, работающего все время (даже когда активность потеряла фокус) и Activity (раздел пейджера с фрагментами).Самый эффективный способ обмена данными между сервисом и активностью
Фоновая служба часто проверяет время и хранит большой массив объектов (до 300), проанализированных из XML-файла.
Каждый объект представляет собой событие с соответствующим STARTTIME и когда соответствует начального времени текущего времени служба должна уведомить деятельности (если таковой имеется), чтобы отобразить, что событие происходит.
На стороне действия у меня есть фрагменты (вкладки пейджера раздела) с помощью специального массива-адаптера, чтобы перечислять события в ListView.
Сейчас я отправляю свой объект из службы с помощью LocalBroadcastManager. Фрагменты - это прослушивание, и когда они получают объект, они просто обновляют свой локальный Arraylist, заменяя его и уведомляя ArrayAdapter о том, что набор данных изменился.
Поскольку каждый фрагмент должен содержать arrayList для обновления ArrayAdapter, а затем ListView, я получаю тот же объект, который хранится как внутри массива службы, так и в одном из массива фрагмента. Мне интересно, есть ли лучший способ.
Вопрос: что было бы самым эффективным (по использованию памяти/скорости процессора и скорости) способом совместного использования большого массива объектов между моей службой и моей деятельностью?
пользовательский обработчик syncronus для этого –
Проверьте эту ссылку http://stackoverflow.com/questions/13519140/android-singleton-which-is-used-between-activity-and-service. В нем немного обсуждается автобус и сингл. –