ios怎么实现后台定时

 我来答
匿名用户
2016-08-31
展开全部
步骤一:在Info.plist中,添加"Required background modes"键,value为:App plays audio

步骤二:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

// Override point for customization after application launch.

NSError *setCategoryErr = nil;

NSError *activationErr = nil;

[[AVAudioSession sharedInstance]

setCategory: AVAudioSessionCategoryPlayback

error: &setCategoryErr];

[[AVAudioSession sharedInstance]

setActive: YES

error: &activationErr];

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}
复制代码

步骤三:将以下代码添加到appDelegate文件中的- (void)applicationDidEnterBackgroundUIApplication *)application函数,也可添加到在具体类中注册的应用进入后台后的通知方法

- (void)applicationDidEnterBackground:(UIApplication *)application{

UIApplication* app = [UIApplication sharedApplication];

__block UIBackgroundTaskIdentifier bgTask;

bgTask = [app beginBackgroundTaskWithExpirationHandler:^{

dispatch_async(dispatch_get_main_queue(), ^{

if (bgTask != UIBackgroundTaskInvalid)

{

bgTask = UIBackgroundTaskInvalid;

}

});

}];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

dispatch_async(dispatch_get_main_queue(), ^{

if (bgTask != UIBackgroundTaskInvalid)

{

bgTask = UIBackgroundTaskInvalid;

}

});

});

}
复制代码

完成以上步骤你会发现,程序进入后台后仍可运行定时器!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式