【问题标题】:Objective c: how to execute a function when app is in the background/killed automatically based on time Intervals目标c:当应用程序在后台/基于时间间隔自动终止时如何执行功能
【发布时间】:2015-12-04 08:00:05
【问题描述】:

当应用程序在后台甚至被用户杀死时,我需要根据时间间隔自动执行一个函数

要求: 用户注册后(前注册日期 2015 年 1 月 1 日),我需要根据以下时间间隔将功能的状态更改为启用/禁用,并在应用程序处于活动模式或后台或被杀死时通知用户。

注册日期 2015 年 1 月 1 日: 查看照片功能状态更改如下。 当状态启用时,用户可以通过点击表格中的照片行来查看照片。 当状态处于禁用模式时,用户无法查看照片并通过点击表格中的照片行来生成警报。

前 2 周:禁用 第 2 周 - 第 5 周:启用 第 5 周 - 第 12 周:禁用 第 12 周 - 3 个月:启用 3个月-8个月:禁用 8months-12months:启用 1 年 - 1.5 年:禁用 1.5 年 - 2 年启用 2 年后 - 每 3 个月切换一次状态。

我完成了日期计算。

但我只想知道当应用程序在后台时,甚至当被用户杀死时,如何根据时间间隔自动执行一个函数

提前致谢

【问题讨论】:

  • 所以你不知道如何解决这个问题?
  • 问问自己:没有运行的应用程序如何执行功能?当你解决了这个禅宗之谜后,你就可以进行下一步了。

标签: ios objective-c iphone uilocalnotification localnotification


【解决方案1】:

我认为你选择的方式是错误的。只需使用AppDelegate 方法即可知道应用何时启动或应用何时返回前台状态。

UIApplicationDelegate Apple Reference

【讨论】:

    【解决方案2】:

    您可以在后台调用函数,但应用程序杀死然后函数不起作用。尝试使用此代码进行后台工作。

    - (void)applicationDidEnterBackground:(UIApplication *)application {
    
    [NSTimer scheduledTimerWithTimeInterval:300.0f
                                     target:self
                                   selector:@selector(updateMethod:)
                                   userInfo:nil
                                    repeats:YES];
    
    }
    
    - (void)updateMethod:(NSTimer *)theTimer {
    // Your code goes here
    NSLog(@"Backgroud Mode");
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多