私のアプリケーションデリゲートは、バックグラウンドに入ったり終了したりするときに、Microsoft SQLデータベースの注文書のロックを解除/ロックする必要があります。iPhone willResignActiveメソッドは実行を完了しません
はここに私のコード
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"App will enter background");
if ([purchaseOrderIsLocked boolValue] && [purchaseOrderAutoID intValue] > 0) {
NSLog(@"Unlock Purchase Order because app is in background %i", [purchaseOrderAutoID intValue]);
[self unlockPurchaseOrderWithAutoID:self.purchaseOrderAutoID];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"App will enter foreground");
if ([purchaseOrderIsLocked boolValue] == FALSE && [purchaseOrderAutoID intValue] > 0) {
NSLog(@"Lock Purchase Order because app is coming back %i", [purchaseOrderAutoID intValue]);
[self lockPurchaseOrderWithAutoID:self.purchaseOrderAutoID];
}
}
-(void)lockPurchaseOrderWithAutoID:(NSNumber *)autoID {
NSLog(@"lock purchase order called with autoID=%i",[autoID intValue]);
self.client = [SqlClientConnect connect];
[self.client executeQuery:[NSString stringWithFormat:@"UPDATE PURCHASE SET PURCHASELOCK = '9999' WHERE PURCHASEORDERNO = '%i'", [autoID intValue]]
withCompletionBlock:^(SqlClientQuery *query) {
if (query.succeeded) {
NSLog(@"locked purchase order");
purchaseOrderIsLocked = [NSNumber numberWithBool:YES];
} else {
[self queryFailedWithError:query.errorText];
}
}];
}
-(void)unlockPurchaseOrderWithAutoID:(NSNumber *)autoID {
NSLog(@"unlock purchase order called with autoID=%i",[autoID intValue]);
self.client = [SqlClientConnect connect];
[self.client executeQuery:[NSString stringWithFormat:@"UPDATE PURCHASE SET PURCHASELOCK = '0' WHERE PURCHASEORDERNO = '%i'", [autoID intValue]]
withCompletionBlock:^(SqlClientQuery *query) {
if (query.succeeded) {
NSLog(@"unlocked purchase order");
purchaseOrderIsLocked = [NSNumber numberWithBool:FALSE];
} else {
[self queryFailedWithError:query.errorText];
}
}];
}
}
オーケーだ、それは私がアプリを実行したときしかし、これは私がホームボタン
2011-12-14 13:41:20.558 MA Mobile[2267:707] App will enter background
2011-12-14 13:41:20.558 MA Mobile[2267:707] Unlock Purchase Order
because app is in background 18
2011-12-14 13:41:20.559 MA Mobile[2267:707] unlock purchase order called with autoID=18
を押したときに、私は、ログから得るものです...私にはよさそうですそれはすべての方法を行って、 "ロックされていない注文書"を投稿している必要がありますが、それは 私は何を得るのですか?
2011-12-14 13:41:44.741 MAモバイル[2267:707]:41:44.973 MAモバイル[2267:707]ロック解除された発注書
アプリケーションがフォアグラウンド 1 2011-12-14 13を入力します
再開後にブロックコードが実行されるようです。これはブロックに関連していますか?私は何か違うことをすべきでしょうか?
てみてください。機能の終わりに。 – StackFlowed