我知道下面的文檔,但即使在閱讀它後,我仍然不明白爲什麼它會終止我的應用程序。應用程序在暫停時靜默終止。 (用戶按下鎖定按鈕,而在我的應用程序)
應用程序必須隨時準備終止發生,並且不應該等待保存用戶數據或執行其他關鍵任務。系統啓動的終止是應用程序生命週期的正常組成部分。系統通常會終止應用程序,以便它可以回收內存併爲用戶啓動的其他應用程序騰出空間,但系統也可能會終止錯誤操作或未及時響應事件的應用程序。 掛起的應用程序在終止時不會收到通知;系統殺死進程並回收相應的內存。如果應用程序當前正在後臺運行並且未掛起,系統會在終止之前調用其應用程序委託的applicationWillTerminate:。設備重新引導時,系統不會調用此方法。 除了系統終止您的應用程序之外,用戶還可以使用多任務UI來顯式終止您的應用程序。用戶發起的終止與終止暫停的應用具有相同的效果。應用程序的進程被終止並且沒有通知被髮送到應用程序。
我只有我的一個應用程序在後臺,所以我無法想象它會終止我的應用程序,因爲它需要更多的內存。但我注意到該文檔還說,如果應用程序行爲不當,應用程序可能會被終止,是否有人知道這意味着什麼?我在我的info.plist中錯過了什麼嗎?我是否違反了某些迫使我的應用程序被終止的協議?當它終止我的應用程序時,它似乎總是非常隨意的,它可能只有15分鐘,或者可能是1小時。
我也看了一下四周,這裏
Will ios terminate the app running in background after a specific time?
看到這個線程我明白,如果我的應用程序是在後臺和用戶是做其他事情在此期間被終止,但我不明白爲什麼它會被終止,特別是它從鎖定按鈕暫停。特別是當我在只有我的應用程序在內存中的iphone 6s上進行測試時。
您是否使用任何背景模式?如果沒有,那麼iOS可能已經決定你的應用程序沒有被使用,它可以從內存中清除。即使您沒有運行其他應用程序,操作系統仍在運行任務 – Paulw11
@ Paulw11後臺模式是後臺獲取和遠程通知。我知道它可以從內存中清除,但是我真的懷疑它會清除我的應用程序,因爲它需要更多的內存或他們在文檔中列出的任何理由。另外,如果沒有一個可靠的理由清除了這個問題,這與蘋果將應用程序留在記憶中的動機相抵觸,反對終止它們。 – TNguyen