Моя активность имеет объект Handler
и регистрирует ContentObserver
с этим обработчиком. Затем я запускаю внешнюю активность, которая иногда может изменять контент (я использую наблюдателя контента, чтобы поймать это изменение). Затем активность возвращает результат, а затем я проверяю своего observer
, если контент был изменен с тех пор, как я начал эту активность для результата. Проблема в том, что когда-то, прямо перед onActivityResult
, моя активность становится onDestroy
- onCreate
, и в результате все, что я catched
у наблюдателя, теряется.
эта активность имеет следующие свойства в AndroidManifest:
android:clearTaskOnLaunch="true"
android:launchMode="singleTop"
Кто-нибудь сталкивался с этой проблемой? Почему активность может быть уничтожена до получения результата? Есть ли безопасное место для размещения моего наблюдателя и обработчика (если активность не безопасна)?
Попробуйте изменить стартовый режим. Когда я использовал внешние действия для получения результатов и установил результат, результат был всегда отменен, когда я использовал singleTop в качестве режима запуска. Изменение его на стандарт IE работало как шарм. Возможно, стоит попробовать.