【问题标题】:Record TimeStamp every time the user uses the app每次用户使用应用程序时记录时间戳
【发布时间】:2013-07-28 01:08:01
【问题描述】:

我想在用户打开应用程序时记录时间戳。现在,我可以在ViewDidLoad 方法中记录,但是,一旦用户关闭应用程序并进入后台,然后再次打开应用程序,我就无法获取时间戳,因为ViewDidLoad 没有不要再跑了。你们有人知道我的时间戳代码放在哪里吗?

【问题讨论】:

标签: ios


【解决方案1】:

在您的应用委托中实现applicationDidBecomeActive: 或观察UIApplicationDidBecomeActiveNotification 通知。

【讨论】:

    【解决方案2】:

    尝试使用- (void)viewDidAppear:(BOOL)animated: 反而。每当视图出现在屏幕上时都会调用它。

    或者你可以查看UIApplicationDelegate 并尝试实现类似的东西:

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

    - (void)applicationDidBecomeActive:(UIApplication *)application

    【讨论】:

      【解决方案3】:

      您可以将它放在 - (void)applicationDidBecomeActive:(UIApplication *)application 中,但这不是一个好方法,因为启动应用程序的用户并不是唯一会导致时间戳被保存的活动,因为这种方法还有其他情况可能会被调用。

      来自 Apple 的Documentation

      applicationDidBecomeActive:告诉委托应用程序 已激活。

      调用此方法是为了让您的应用程序知道它 从非活动状态变为活动状态。这可能是因为您的 应用程序由用户或系统启动。应用程序可以 如果用户选择忽略 发送的中断(例如来电或短信) 应用程序暂时进入非活动状态。

      正确的做法是把存储时间戳的代码放在application:didFinishLaunchingWithOptions:applicationWillEnterForeground:里面 第一个方法将在第一次启动时调用,第二个方法将在应用程序从后台启动时调用。由于忽略的中断不会将应用程序发送到后台,因此在这种情况下不会调用applicationWillEnterForeground,因此您不会在用户忽略电话后存储时间戳。

      检查this answer,因为它很好地总结了处理将应用程序发送到后台并将其返回到前台所涉及的方法的作用,以及您应该使用它们中的每一个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-25
        • 1970-01-01
        • 1970-01-01
        • 2013-08-14
        • 2018-04-03
        • 2021-12-22
        • 2021-04-27
        相关资源
        最近更新 更多