1

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

通常这是可行的,我的 JSON 加载器在自己的线程上调用 web 服务,并使用 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");
    }
}

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

4

0 回答 0