对于android我试图保持状态,如果调用onDestroy()。我想知道什么是常见的设计模式用于做这样的事情,以便实际的应用程序功能与持久性功能分离?例如,我有一个for循环遍历游戏中的所有玩家。此更新发生在游戏的每一轮结束时。应用程序会在更新过程中被破坏一半吗?如果发生了这种情况,我需要包括哪种逻辑来记住哪个玩家更新了。在Android应用上坚持状态的设计模式
1
A
回答
0
您有两种主要的保存状态选项。如果您关注实例变量,则覆盖Activity.onSaveInstanceStatethis question的答案提供了一个很好的示例。
对于持久数据,您可以将其存储在SharedPreferences或SQLite数据库中,也可以将其写入文件。这篇文章将帮助您开始:http://developer.android.com/reference/android/app/Activity.html#SavingPersistentState
0
您的应用程序可以中途在更新过程中,如果用户切换到另一个应用程序如接到电话被杀死。
考虑到这种情况,您可能需要在onPause()而不是onDestroy()中保存状态,因为onPause()是保证在您的活动被系统终止时调用的最后一个方法。
而在的onPause(),就可以启动一个后台服务做的,可以给你的进程更高的优先级,以便它不太可能,当你正在做的更新被系统杀死了更新。
看到Activity lifecycle和Process文件的更多细节。
0
Android对杀死应用程序并不是很好。你可能会或可能不会停止或关闭。您可能会或可能不会收到虚拟机关闭的挂钩。基本上你的应用程序可以在任何时候死亡(低内存压力),用户杀死它,等等,你不会得到任何警告。基本上最好的做法是假定你可以在任何时候死亡,并在你得到它时立即存储或更新临界状态。
基本上我会做一个SQLitedatabase或为此使用共享首选项。
相关问题
- 1. 高水平设计,保持状态,在Android应用
- 2. 状态设计模式用户界面
- 3. cufon悬停状态坚持
- 4. 状态模型设计模式
- 5. 跟踪/状态的设计模式
- 6. 多视图状态的设计模式?
- 7. 坚持启用会话状态
- 8. 坚持使用Cookie切换状态
- 9. 坚持过滤器选择的设计模式
- 10. 使用状态设计模式重新设计 - 疑问
- 11. 状态设计模式 - ASP .NET Webform
- 12. 状态设计模式:错误处理
- 13. 状态模式和域驱动设计
- 14. 状态设计模式 - 编译错误
- 15. 坚持jQuery和servlets的视图状态
- 16. ReactJS如何坚持cookie中的状态
- 17. 坚持数据在整个Android应用程序的方式
- 18. 面向对象程序设计问题 - 状态设计模式
- 19. SQL服务器:坚持“恢复”状态
- 20. 坚持复选框状态跨回发
- 21. 如何在JPA域模型中实现状态设计模式
- 22. Rails的设计:我应该使用current_user或坚持User.find(params [:user_id])
- 23. 在PHP中实现的状态设计模式的资源?
- 24. 坚持模型对象的模式?
- 25. 坚持在模态的方式另一种形式的巅峰状态,但继续执行
- 26. 坚持JPA域对象的好设计
- 27. 用于存储控制状态的最佳设计模式
- 28. 使用面向对象的状态模式设计
- 29. iPhone设计模式支持
- 30. 坚持应用程序设置
看看片段API – slezica 2012-02-16 23:44:13