Nano Hash - криптовалюты, майнинг, программирование

NSOperation приостановлено после спящего режима

Я использую S3uploader OSx sdk (я изменил IOS sdk) для загрузки файлов в свое приложение. Для любых файлов (один файл или фрагмент файлов), которые я загружаю, я создаю NSOperation. Эта операция вызовет S3uploader sdk для загрузки файлов. Все работает нормально, когда моя система не спит. Но если я перейду в спящий режим и вернусь, то NSOperation как бы зависнет. Он не продолжает свою деятельность. Я отладил и обнаружил, что он завис в

-(S3UploadPartResponse *)uploadPart:(S3UploadPartRequest *)uploadPartRequest;

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

Кто-нибудь сталкивался с такой ситуацией?


Ответы:


1

Если ваше приложение не воспроизводит аудио, не использует GPS, MFI и т. д., ваше приложение сможет работать в фоновом режиме только около 10 минут, прежде чем оно завершится.

Чтобы убедиться, что он получил свои 10 минут, вы должны сделать что-то вроде этого:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
        // Clean up any unfinished task business by marking where you.
        // stopped or ending the task outright.
        [application endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    }];

    // Start the long-running task and return immediately.
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        // Do the work associated with the task, preferably in chunks.

        [application endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    });
}

Подробнее об этом можно прочитать в разделе Состояния приложений и Многозадачность.

19.10.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..