Я строго разделил слои между различными частями моего приложения для Android.
В какой-то момент выполнения я обновляю свои данные из службы xml в Интернете. Это обновление занимает около 10 секунд и выполняется полностью в фоновом режиме, то есть пользовательский интерфейс приложения работает нормально. Однако дальнейшие обращения к моему классу (позже - DataManager), который отвечает за обновление данных (после того, как обновление было начато, но еще не закончено), вызывает сбой моего приложения. NullPointerException генерируется с объектами, которые НИКОГДА не равны нулю.
Итак, я предполагаю, что только один поток может использовать мой DataManager за один раз, и вызовы DataManager из других потоков заканчиваются исключениями.
Я пробовал различные комбинации размещения «синхронизированных» ключевых слов рядом с чувствительными методами, но кажется, что когда выполняется обновление - НИЧЕГО не может использовать НИЧЕГО из моего DataManager.
Кстати, другие классы, связанные с DataManager во время выполнения, также содержат нулевые объекты.
Полагаю, мне просто не хватает какого-то шаблона проектирования, который используется для решения проблем параллелизма, и, может быть, кто-нибудь может мне что-то подсказать?