2013-10-21 40 views
0

我想使用AFNetworking對我的服務器執行定期的JSON請求(更新用戶的配置文件並檢查更改)。ios後臺下載完成但視圖已被破壞

如果後臺作業正在運行,但用戶按下了「後退」按鈕或使ViewController被銷燬的任何內容,該怎麼辦?我怎樣才能管理這個?我的意思是,在這種情況下,我想忽略的結果,當用戶返回到查看

謝謝

PS再次執行它:我不想要一個完整的工作代碼。我只想知道,如果ViewController已被銷燬,我怎麼能從後臺下載作業(使用AFNetworking運行)中知道。

+0

嘗試這些值存儲在和NSUserDefaults的用戶時談到我從來沒有使用AFNetworking這一觀點 – Tendulkar

+0

重新啓動連接 - 但我會想你給它某種委託的,通常是你的視圖控制器。 所有你需要做的(如果是這種情況)是當你的ViewController被卸載時將委託屬性設置爲nil。 – Marc

回答

1

爲了停止正在運行的網絡請求,您可以在視圖控制器的方法viewWillDisappear:發送cancel到網絡操作。

同樣,爲了在視圖變爲可見時自動啓動網絡請求,請使用方法viewWillAppear:

1

如果你只是需要實現你的任務。意思是,只有在出現特定的ViewController時才試圖獲得更改&。

使用方法

-(void) viewDidappear{ 
// Initialise Your task here 
} 

-(void) viewWillDisappear{ 
// Destoy(Cancel) the task 
} 
1

一個解決辦法是實現在使用NSNotification機制的方式下載:

  1. 設置的視圖控制器作爲一個傾聽者。

  2. 設置bg下載以在下載過程完成時觸發通知。

  3. 如果風險投資仍在附近時通知觸發,很好 - 它會處理通知並做你需要的任何事情。如果它不在......沒有任何反應。

相關問題