Вы можете использовать метод `stop_polling()` для остановки выполнения цикла в aiogram.
Пример:
```python
from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor
# Создаем бот и диспетчер
API_TOKEN = 'ваш_токен'
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
# Обработчик нажатия кнопки
@dp.message_handler(lambda message: message.text == 'stop')
async def stop_handler(message: types.Message):
await message.answer('Вы нажали на кнопку "stop"')
await dp.storage.close()
await dp.storage.wait_closed()
await bot.session.close()
await bot.close()
executor.stop_polling()
# Функция для запуска бота
async def on_startup(dp):
await bot.send_message(chat_id, 'Бот запущен')
# Запуск бота
if __name__ == '__main__':
executor.start_polling(dp, on_startup=on_startup)
```
В данном примере создается обработчик для сообщений, которые содержат текст "stop". При нажатии на кнопку бот отправит сообщение и остановит выполнение цикла с помощью метода `executor.stop_polling()`.
Также не забудьте закрыть все открытые соединения с помощью методов `bot.session.close()` и `bot.close()` для корректного завершения выполнения программы.