applicationWillResignActive不会调用委托上的调用

时间:2012-05-23 20:48:15

标签: iphone objective-c delegates invocation

我有一个推送了一些ViewController的应用程序。我登录JSON Web服务,获取一些数据并在应用程序处于活动状态时执行一些工作。当应用程序关闭或移动到后台时,我想注销。

通常这是有效的,我的JSON加载器在自己的线程上调用webservice并使用NSDictionary和表示调用结果的枚举调用委托。

当我的应用程序通过以下函数发送到后台时,我错过了这个调用:

- (void)applicationWillResignActive:(UIApplication *)application
{
    JSONLoader *json = self.startViewController.json;
    NSString *usr_no = [self.startViewController.user.usr_no stringValue];

    //ask json for logoff
    NSString *relativePath = [NSString stringWithFormat:@"users/%@?action=logout", usr_no];
    NSURL *logoutUrl = [NSURL URLWithString:relativePath relativeToURL:kBaseURLString];
    [json loadWithURL:logoutUrl sendResult:kJSONLogoutSuccess];
}

它执行注销,但它永远不会到达委托的程序,我必须确保注销成功:

-(void)updatedDictionaryFromJson:(NSDictionary *)items withResult:(JsonResult)result{

    // do some other stuff..

    if (result == kJSONLogoutSuccess) {
        //user logout was successful
        NSLog(@"got some logout json");
    }
}

为什么在应用程序进入后台时没有调用调用,任何人都有类似的经历?是在后台应用了吗?还是我应该辞职?有什么建议吗?

0 个答案:

没有答案