我已经在ios5中实现了长期运行的处理方法。我想在应用程序处于后台运行时每30秒或1分钟触发一些功能。我编写了执行长时间运行过程的代码,方法是进入后台方法,进入后我无法执行计时器功能背景。我应该在哪里放置我的计时器函数,以便它应该调用目标方法,即使它在后台也是如此。

 bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
    // Clean up any unfinished task business by marking where you.
    // stopped or ending the task outright.

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


dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

   [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(targetMethod) userInfo:nil repeats:YES];
   [application endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;
});

这个怎么做?一些示例代码会有所帮助。

谢谢
普什帕

最佳答案

您只能在后台支持定位服务,音频播放和VOIP服务。
如果您的应用程序不使用这些API及其功能中的任何一个,那么请不要浪费您的时间...即使有某种方法,Apple也不会接受您的应用程序。

10-07 19:54