Просто вернитесь из метода, запускающего индикатор активности. Пользовательский интерфейс (включая индикатор активности) обновляется после возврата приложения в основной цикл выполнения. Обрабатывайте любые длительные действия (например, загрузку) асинхронно с делегатами или обратными вызовами, чтобы индикатор активности мог продолжать работать. Поэтому вернитесь к методу, который также начинает загрузку. Завершите позже другим способом.
Другим вариантом является загрузка или другой длительный процесс в другом потоке. Для этой цели могут использоваться очереди и блоки операций. Используйте executeselector в главном потоке для обновления пользовательского интерфейса, поскольку приложение не может обновить пользовательский интерфейс напрямую из фонового потока.