Конечно нет :)
Ведь проблема не в версии API, а в производителях ( P.S. у "Motorolla Droid2" версия android 2.3).
Также не стоит забывать о китайских телефонах - у них часто встречается ANDROID_ID = null
dimonkoz: Всё что связано с Application Instance.
Накидаю несколько вариантов :
1) Состояние приложения: При старте вы инициализировали Singletone (например ACRA.init(), Factbook.init(), итд ) в UI он работает нормально - а в Service он null.
2) Callback : Вы отправили в сервис запрос и ждете ответа. Тут Android решает завершить тот процесс, в котором работает сервис и убивает его, но процесс с UI остается работать и жать ответа вечно. Эту ситуацию нужно обрабатывать отдельно.
3) Доступ к файловой системе (file locks) : если вы находитесь в одном процессе то легко сделать ThreadSafe менеджер для работы с файлами, который будет разрешать коллизии доступа на логическом уровне. Если процессы разные, то блокировка доступа к файлам будет возникать на уровне файловой системы и их разрешать гораздо сложнее. Особенно это касается SQLite - когда сервис и UI одновременно пытаются писать в базу, то возникает SQLiteDatabaseLockedException.
Это проблемы "на вскидку", есть еще проблемы с тем что данные хранятся дважды (в сервисе и в UI) и нужно их постоянно как-то синхронизировать и т.д.
Но это очевидные проблемы, а настоящие грабли обычно неожиданны и не предсказуемы :)
MaxF: Вы сами ответили на свой вопрос :
Вариант с использованием BroadcastReceiver выглядит так : Data -> Otto -> Bundle -> Otto -> Data. И именно на случай таких костылей я посоветовал сделать отдельный менеджер. Ведь вопрос стоял - как правильнее.
PS я не писал что использовать EventBus - плохо. Наоборот он очень удобен в своей нише (слабые связи внутри приложения) но для сервиса он не всегда удобен.
MaxF: Вы путает понятия Thread и Process. В ссылке которую вы привели обсуждают взаимодействие между потоками а не процессами.
Кстати в топике по вашей ссылке, сам автор библиотеки, пишет что Otto работает только в одном Process. https://github.com/square/otto/issues/38#issuecomm...
Ведь проблема не в версии API, а в производителях ( P.S. у "Motorolla Droid2" версия android 2.3).
Также не стоит забывать о китайских телефонах - у них часто встречается ANDROID_ID = null