2016-06-11 78 views
0
  • 首先,我需要描述一下我要做什麼:當用戶啓動我的應用程序時,應用程序開始收集用戶活動和行爲的統計信息,一旦用戶關閉應用程序(應用程序進入後臺)應用程序會將所有統計信息上傳如何在後臺向服務器發送內容? ios

  • 如果用戶按下主頁按鈕兩次並從多任務屏幕中刪除應用程序,則會出現此問題。那麼應用程序可能無法成功向服務器發送統計信息。因爲它會被終止。

我的解決方案:

  1. 啓用後臺讀取,在後臺模式。但我不認爲這會幫助,因爲根據蘋果: the system does not relaunch apps after they are force quit by the user

  2. 使用Executing Finite-Length Tasks,我試了一下,也不會發送數據,如果用戶從多任務屏幕刪除應用程序。

  3. 使用NSURLSession下載後臺中的內容,但根據蘋果If the user terminates your app, the system cancels any pending tasks

因此,如果用戶終止應用程序,任何解決方案,上述所有解決方案將無法正常工作?

我注意到,如果我終止appstore應用程序(從多任務屏幕中刪除它),而有一個應用程序正在下載,應用程序將繼續正常下載。這是僅用於appstore應用程序嗎?

回答

0

如果用戶終止一個應用程序,該應用程序終止。對此你無能爲力。 iOS設備意味着可由用戶控制。

取決於你想要達到的目的,你可能所有的統計信息添加到隊列在磁盤上,並清空該隊列只後的應用程序已經成功上傳數據到服務器。

  • 如果用戶沒有強制退出,這會立即工作,只是你想要的方式。

  • 如果用戶強制退出,數據將不會上傳,隊列仍然存在於磁盤上。當應用程序啓動時,它可以檢查隊列並立即上傳。

你應該做這樣的事情在任何情況下,對付如用戶進入地下了一個小時,或採取長途飛行的情況。

我懷疑App Store應用程序不會安裝應用程序,但會告訴系統進程安裝它們。

相關問題