iOS でアプリをバックグラウンドから再開すると、次の問題が発生します。インターネットへの接続が 3G または WIFI の場合、すべて正常に動作します。データ接続 (Wi-Fi やモバイル) がない場合でも、すべて問題ありません。
しかし: モバイル接続が悪いのに Ti.Network.online が true を返す場合、またはインターネットにアクセスできない WIFI 接続がある場合、アプリは再開後に「ハング」し、最終的にクラッシュします。デバイス ログに「時間内に再開できませんでした」と表示されます。これは、「再開」イベント リスナーを追加しない場合でも発生します。
これについて私に提案してください。
コードは次のとおりです。
self.expirationHandler =
^{
[app endBackgroundTask:self.bgTask];
self.bgTask = UIBackgroundTaskInvalid;
self.bgTask = [app beginBackgroundTaskWithExpirationHandler:self.expirationHandler];
DLog(@"Expired");
self.jobExpired = YES;
while(self.jobExpired)
{
DLog(@"Spin the While loop to run the app in infinite");
}
// Restart the background task so we can run forever.
[self runtheApp:nil];
};
self.bgTask = [app beginBackgroundTaskWithExpirationHandler:expirationHandler];
[self startLoggerInBackground];
}