當我重新啓動設備時,我的應用程序在其上將不會保留它一旦我再次打開應用程序時的狀態,它將會像我第一次打開時一樣,失去了會話,不得不重新登錄,我怎麼能讓我的應用程序保持其狀態,即使通過設備重啓?例如,像Twitter一樣。防止應用程序在設備重新啓動時關閉
回答
根據您在上面添加的評論,我會嘗試更正式的答案。我會開始說蒂姆發佈的the link是你應該熟悉的東西。
當您的應用運行時,它處於前臺狀態。當你用主頁按鈕「退出」一個應用程序時,你並不是真的放棄它;你只是把它推到背景狀態。在後臺狀態幾秒鐘後,操作系統會自動將應用程序移至掛起狀態。如果你在幾分鐘內回來,你的應用程序仍然在內存中,所以操作系統只是將它放回到屏幕上。
但是,如果您將應用程序單獨保留一段時間並使用其他應用程序,操作系統可以隨時在沒有警告的情況下從內存中清除您的應用程序。這被稱爲「未運行」狀態。現在,當再次打開應用程序時,它必須從頭開始。顯然,當設備重新啓動時會發生同樣的事情 - 所有的應用程序都從內存中清除。
然後,訣竅就是在進入後臺狀態時保存有關應用程序狀態的基本信息。您可以使用應用程序代理的didEnterBackground
方法,或註冊UIApplicationDidEnterBackgroundNotification
,並在您的活動視圖控制器(或任何其他類)中調用方法。無論哪種方式,你應該保存任何你可以的狀態信息。
如何保存這些信息?有幾種策略。對於一個簡單的應用程序,也許你可以註冊一些設置爲NSUserDefaults。或者,也許你可以寫出一個包含用戶正在處理的任何數據的文件。這真的取決於你。
然後,無論何時啓動應用程序,檢查是否存在保存的數據(但是您選擇將其寫出),並相應地設置UI。對於用戶來說,它看起來好像該應用永不退出,這正是蘋果希望他們想的。
感謝Husker的解釋,我當時只是信任蘋果的魔力。 – 8vius 2012-07-27 19:39:34
- 1. android在關閉應用程序或重新啓動設備時調用方法
- 2. 在設備重新啓動時啓動iOS應用程序
- 3. 應用程序在設備關閉時再次啓動
- 4. 在啓動應用程序時關閉設備音樂
- 5. [Android]應用程序重新啓動設備後重新啓動
- 6. Java應用程序在關閉時如何重新啓動?
- 7. 如何在應用程序關閉/重新啓動時關閉db4o連接?
- 8. 在設備重新啓動後插入時,App強制關閉
- 9. 當屏幕關閉時重新啓動應用程序
- 10. 關閉程序後重新啓動應用程序
- 11. 當插入USB設備時,Android應用程序重新啓動
- 12. 如何防止Android從啓動程序重新啓動應用程序
- 13. 如何在設備重新啓動時保持應用程序啓動
- 14. 當應用程序關閉時重置默認啓動程序
- 15. 防止關閉Java swing應用程序
- 16. 是否有可能防止設備在重新啓動時破壞我的Android應用程序?
- 17. 如何重新啓動設備後重新啓動應用程序?
- 18. 防止重新啓動HTML5 Web應用程序
- 19. 應用程序不重新啓動的設備在Qt
- 20. 更新Android應用程序而不重新啓動設備
- 21. 當應用程序被重新安裝/重新安裝時,阻止Android設備重新啓動
- 22. 從智能設備應用程序關閉Windows移動設備
- 23. 如何在更改語言環境時防止應用程序重新啓動?
- 24. 防止IIS在重啓過程中關閉先前實例之前啓動應用程序
- 25. 應用程序保持在頂部,並在關閉時重新啓動
- 26. 如何重新啓動Robotium中關閉的應用程序?
- 27. 有意讓系統關閉並重新啓動應用程序
- 28. 擴展應用程序類 - 強制關閉重新啓動Android
- 29. 重新啓動應用程序W/O關閉它
- 30. 應用程序關閉並重新啓動後還原的ImageView
每次應用程序進入後臺狀態時,您是否保存應用程序狀態?如果是這樣,您可以使用保存的信息來恢復用戶在應用重新啓動時正在處理的內容。如果設備重新啓動或應用程序由操作系統終止,則無關緊要。 – 2012-07-27 15:55:10
我相信當它進入後臺時我並沒有保存應用程序狀態,但是如果我退出應用程序,它不會丟失它的當前狀態,它會從它停止的地方接收它,但是當設備重新啓動時,它不會不會發生。 – 8vius 2012-07-27 15:57:24
@ 8vius:我想你可能會誤解一些應用程序和多任務處理在最新版本的iOS上的工作原理。考慮查看iOS應用程序編程指南的[應用程序狀態和多任務處理](http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOS編程指南/管理應用程序流量/管理應用程序流量.html)部分。 – Tim 2012-07-27 16:03:19