2016-05-12 3 views
1

Исходя из Java EE в приложение для Android (я не являюсь гуру в Java EE), для самой полной загрузки приложения мы решили обрабатывать файлы асинхронно, когда приложение запускается, мы запускаем некоторые асинхронные каналы для чтения файлов, тогда мы открываем основное действие, идея заключается в том, что пользователь может не перейти непосредственно к случаям использования, которые нуждаются в этих файлах, но если он перейдет к нему, а асинхронное чтение не будет прекращено, он должен подождите некоторое время (что хотел клиент).Передача будущего объекта между действиями

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

Пытается использовать пассивный или сериализуемый, но в будущем он не использует никого из них, я попытался использовать RoboGuice (его основанный на статических полях, но его busniss), но его немного глючит, как я могу это сделать в android в хорошем смысле, если есть другая идея, я буду вынужден использовать однотонные или статические методы.

+0

О каких файлах и данных вы говорите? –

+1

Точно. EventBus может использоваться для отправки объектов из одного места в другое (например, asyncTask для Activity или любого другого). – Vucko

+0

Мы работаем над V2 приложения из V1 (я не работал в V1), V1 использует файлы для хранения данных, поэтому я не хочу изменять все приложение и использовать базу данных (нет времени для это), и клиент хочет более быстрого запуска. –

ответ

1

EventBus может использоваться для отправки объектов из одного места в другое (например, asyncTask для Activity). Это здорово и легко использовать, и он выполнит то, что вы пытаетесь сделать отлично.

Вы можете создать свои пользовательские классы объектов для отправки между почти любыми 2 классами: «Виды деятельности», «Службы» или все, что у вас есть.

+0

Это кажется отличным решением для обмена данными между компонентами (Intent extras sucks), для мгновенного использования я буду использовать его только для Future, я не буду реорганизовывать старый код, это делает приложение уродливым, но я не думаю, что есть другие решение с предоставленным временем. –

+1

Да, намерения очень ограничены простыми типами данных. Это самый лучший способ из-за еще одной вещи: она полностью асинхронна, вам решать, когда вы отправляете событие (например, в 'onPostExecute' вашего' AsyncTask', когда вы извлекаете некоторые данные). – Vucko

Смежные вопросы