我想在調用applicationDidEnterBackground
時取消URL連接。但我不知道如何在整個應用範圍內保存連接。我在其他視圖控制器中創建了幾個url連接,但我想在AppDelegate
中取消它們。我怎樣才能做到這一點?- (void)applicationDidEnterBackground:(UIApplication *)application
回答
我相信你的NSURLConnections會在你的應用進入後臺時被殺死。
如果你想跟蹤所有的NSURLConnections,你需要通過將它們添加到NSSet,NSArray或其他數據結構來跟蹤它們,並通過它們循環來關閉它們。你也可以有一個繼承或組成NSURLConnection的類。這個數據結構可以處理將其自身添加到隊列中,並且可以在應用程序退出時進行清理。
有沒有任何證據表明NSURLConnections會在應用程序進入後臺時被殺死。我試圖找到一些文件來支持,但失敗了。 – anna
最好在應用程序變爲不活動狀態之前停止連接,而不是applicationDidEnterBackground。
答案是使用通知:
-(void)init
{
//
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(closeConnection) name:UIApplicationWillResignActiveNotification object:nil];
//
}
-(void)closeConnections
{
// [urlConnection cancel];
}
當呼叫來臨時,應用程序的狀態將爲applicationWillResignActive,並且在拒絕呼叫時應用程序ID爲ActiveDireBecomeActive時將應用程序IDEnterBackground。我認爲最好是確認國家並停止聯繫。 – anna
你可以在你類創建連接添加觀察員UIApplicationDidEnterBackgroundNotification
。試試這個:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(enterBackground) name:UIApplicationDidEnterBackgroundNotification object:nil];
記得把這個
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil];
在
類的dealloc
- 1. - (void)applicationDidEnterBackground:(UIApplication *)application
- 2. - (void)applicationDidEnterBackground:(UIApplication *)application
- 3. 不被調用的方法: - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken :(NSData *)deviceToken
- 4. 可以在「applicationDidEnterBackground:(UIApplication *)application」中使用exit(0)嗎?
- 5. - (void)applicationWillTerminate:(UIApplication *)應用程序
- 6. applicationDidEnterBackground
- 7. 在 - (void)applicationWillEnterForeground上更改視圖:(UIApplication *)應用程序
- 8. - (void)applicationWillResignActive:(UIApplication *)應用程序永遠不會被調用
- 9. SoloAmbient和applicationDidEnterBackground
- 10. ApplicationDidEnterBackground和UIWebview
- 11. UIApplication _preferredInterfaceOrientationGivenCurrentOrientation:SIGABRT
- 12. ApplicationDidEnterBackground不會觸發方法
- 13. GCD sendSynchronousRequest applicationDidEnterBackground
- 14. applicationWillTerminate/ApplicationDidEnterBackground issues
- 15. 當applicationWillResignActive或applicationDidEnterBackground
- 16. applicationDidEnterBackground&applicationWillResignActive不被調用
- 17. applicationDidEnterBackground和applicationWillResignActive的替代品?
- 18. applicationDidEnterBackground:未被調用
- 19. 最佳做法applicationDidEnterBackground
- 20. applicationDidEnterBackground整數迭代
- 21. 區分applicationDidEnterBackground和applicationWillTermimate
- 22. 手動調用applicationDidEnterBackground
- 23. 放置位置[[UIApplication sharedApplication] setStatusBarHidden:YES];?
- 24. 使用 - (void)applicationDidBecomeActive切換到特定的視圖控制器:(UIApplication *)應用程序
- 25. 數據的UIApplication
- 26. UIApplication openURL background
- 27. QLPreview和UIApplication?
- 28. UIApplication beginBackgroundTaskWithExpirationHandler question
- 29. Get extern [UIApplication sharedApplication]?
- 30. NSApplication vs UIApplication
我敢肯定URL連接無論如何都會停止,當應用程序關閉,ARC應該採取其他的事情。 – woz
應用程序applicationWillEnterForeground會自動重啓嗎?有什麼文件可以參考嗎? – anna