Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

madao708/BackgroundTask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

5 Commits

Repository files navigation

BackgroundTask

swift实现iOS应用在进入到后台之后,依旧可以执行任务,并不受时间的限制

思路:

  1. 使用UIApplication对象的beginBackgroundTaskWithExpirationHandler申请后台执行任务,该任务只有大概3分钟的运行时间

  2. 应用申请到后台执行任务后,使用NSTimer开启一个定时任务,主要负责监控应用剩余的后台可执行时间,当可用的时间少于一个值时,播放一段默声音乐,然后调用UIApplication对象的endBackgroundTask方法将之前申请的后台执行任务结束掉,最后再重新申请一个后台执行任务,这样就可以实现后台不限时执行任务了

  3. 应用在后台播放音乐,需要开启Background Modes,然后勾选Audio and AirPlay即可

注:应用在后台运行的过程中重新申请后台执行任务是无效的,通过在网上查找资料,播放音乐可以让应用进入到一个假前台的状态,此时重新申请后台执行任务是有效的,如此循环n次,就可以获得大约3n的后台执行时间,从而达到后台无限时执行任务

About

swift demo:实现iOS应用在后台无限长时间运行

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%

AltStyle によって変換されたページ (->オリジナル) /