代码之家  ›  专栏  ›  技术社区  ›  Dilshan

论破产清算制度

  •  0
  • Dilshan  · 技术社区  · 14 年前

    当iPhone应用程序在后台运行并收到远程通知时。所以它将执行 didReceiveRemoteNotification 回电。在这一点上,我将推动一个新的 UIViewController . 但在那之前它注意到 applicationWillEnterForeground 回拨。

    在这方面,我也做了一些位置更新使用模态对话框。所以当这个通知到达时,这两种情况都会发生,应用程序会崩溃。有没有办法阻止 applictiaonWillEnterBackground 正在处理远程通知。因为这一刻有点难,因为这个过程是在 applicationWillEnterBackground 控制器。

    谢谢您。

    1 回复  |  直到 12 年前
        1
  •  3
  •   Robert Höglund    14 年前

    回拨 application:didReceiveRemoteNotification: 只应在应用程序在前台运行时调用。当你在后台运行时,你应该给 application:didFinishLaunchingWithOptions: .

    既然你在问这个问题,同时也在使用核心位置,可能是 申请:DidReceiverEmotentification: 当应用程序在后台时调用,但我认为这是一个错误。至少根据苹果的文件。

    无论如何,不,你不能阻止 applicationWillEnterForeground: . 在不知道您在不同回调中具体做什么的情况下,我建议您在 应用程序将进入前台: 如果你在那里做了什么然后把那面旗签进去

    - (void)applicationWillEnterForeground:(UIApplication *)application {
      if (somehingHappend) {
        somethingHappended = YES;
      }
    }
    
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
      if (!somethingHappened) {
        // push your view controllers or whatever
      }
    }
    

    在哪里? somethingHappened 是一个 BOOL 与ivar在同一类中定义。