Насколько я понимаю, вы хотите выполнить некоторый код до того, как ваша функция Lambda будет остановлена, независимо от того, какое у вас состояние выполнения (выполнение / ожидание / обработка исключений и т. Д.).
Это невозможно из-заполе с лямбдой, то есть не происходит событие или что-то подобное, что можно определить как отключение.JVM будет зависать, как только вы истечете время ожидания.Однако вы можете наблюдать оставшееся время выполнения, используя метод getRemainingTimeInMillis()
из объекта Context
.Из документов :
Возвращает количество миллисекунд, оставшихся до истечения времени выполнения.
Итак, при инициализации вашей функции вы можете запланироватьзадача, которая регулярно проверяет, сколько времени осталось, пока ваша функция Lambda не достигнет тайм-аута.Затем, если осталось менее X (милли) секунд, вы делаете Y.