在 iOS 中运行后台服务

Posted

技术标签:

【中文标题】在 iOS 中运行后台服务【英文标题】:Running Background Service in iOS 【发布时间】:2014-06-30 06:49:49 【问题描述】:

我是 ios 应用程序开发的新手。我想在 iOS 中创建一个后台服务。我还想提一下一天中的特定时间和间隔(每 2 小时)来调用服务(一种调用服务的警报)。当服务运行时,一些任务应该独立于应用程序的状态来执行,即应用程序可以处于活动或非活动状态。它的任何示例或实现的代码 sn-p 都将帮助我实现此功能。

【问题讨论】:

了解苹果文档中的 localNotification developer.apple.com/library/ios/documentation/… appcoda.com/ios-programming-local-notification-tutorial 【参考方案1】:

使用此代码

- (void)applicationWillEnterForeground:(UIApplication *)application


[Timer invalidate];
    Timer = nil;


- (void)applicationDidEnterBackground:(UIApplication *)application

    NSLog(@"Background process is Start(EnterBackground)!");
    __block UIBackgroundTaskIdentifier bgTask ;
    UIApplication  *app = [UIApplication sharedApplication];
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^
        [app endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    ];
    Timer = [NSTimer scheduledTimerWithTimeInterval:120.0f target:self  selector:@selector(process)  userInfo:nil repeats:YES];

【讨论】:

你能解释一下这里的定时器是什么吗?它在代码中给出错误。 在.h文件中声明NSTimer *Timer; 非常感谢。这行得通!但这是在后台运行某些东西的正确方法吗? iOS 中有没有类似服务的东西? 是否可以提及某个特定时间,例如上午 11:00?

以上是关于在 iOS 中运行后台服务的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ios 中永远运行后台服务以同步数据

ios12后台定位服务停止

即使应用程序处于挂起状态,如何在 ios 中运行后台服务

如何在 iOS 后台运行服务以接收本地通知?

在 iOS 后台运行 Http 服务器

如何在 Android O 中保持服务在后台运行?