Отговорът е „На теория да, но обикновено не“.
Приложенията всъщност имат повече състояния от активни и фонови.
Щатите са:
- Активен
- Фон (все още работи, но друго приложение е на преден план)
- Спряно (в паметта, но не получава никакво процесорно време)
- Не работи. (вече не се изпълнява или е в паметта.)
Когато потребителят смени приложенията, натисне бутона за начало или заключи устройството си, вашето приложение получава известие, че преминава във фонов режим, но всъщност работи във фонов режим само за МНОГО кратко време. Преминава към спряно почти веднага. След като бъдете спрян, можете да бъдете прекратен по всяко време без допълнително предизвестие.
Ако имате нужда от повече време, за да завършите дадена задача, когато получите известие, че сте преместени на заден план, можете да поискате това чрез извикването beginBackgroundTaskWithExpirationHandler
. От момента на писане обаче получавате най-много 3 минути, след което манипулаторът ви за изтичане се задейства и приложението ви е спряно.
В резултат на това всъщност не можете да работите във фонов режим много дълго и е вероятно, докато потребителят заключи екрана (или той се заключи автоматично), вие вече сте спрени и не получавате известия.
person
Duncan C
schedule
21.12.2015