У меня есть действие, начавшиеся с помощью фильтра намерения (его природа не очень важна, может быть USB -устройства или любой другой внешний триггер). Это запускает деятельность, которое имеет первоначальный маршрут, связанный с ним. Страница начинается все в порядке, я перезвоню на сторону платформы, чтобы получить дополнительные данные из намерения, но мне нужно отобразить разные пользовательский интерфейс, возможно, взять разные следующие маршруты в зависимости от того, произошло ли запускное действие с приложением, которое уже работает на переднем плане или начинается с свежей системой (я не заинтересован в различии между холодным и теплым стартом здесь, только независимо от того, только ли оно работает или нет). Кроме того, это другое действие, чем само основное приложение, поэтому onnewintent () не помогает.
Я попробовал около полудюжины подходов, отмечая события жизненного цикла, как активность, так и плагин, используя widgetsbindingobserver. Приемный приемник между платформой и фронтом, чтобы подтвердить, что последний активен,
, но в основном все смягчаются с тем фактом, что новое действие, начатое с запуска события, заменяет существующую, поэтому ранее выполняющее действие уже приостановилось к тому времени, когда я смогу проверить его статус. Таким образом, в основном мне нужно было бы проверить не то, что приложение в настоящее время работает, а что оно работает незадолго до начала моей новой деятельности. Я также пытался представить задержки, чтобы отметить события жизненного цикла, но, как и следовало ожидать, это не надежно, иногда это работает, иногда он пропускает.
Подробнее здесь: https://stackoverflow.com/questions/797 ... st-started