我正在创建一个Android记分牌应用程序,用户可以在其中更新他们的分数,稍后可以查看它们以及一些统计数据等。现在,每次用户与应用程序交互(按下按钮)时,分数都会更新。< / p>
我是否应该在用户执行的每次点击时更新SQLite数据库? (因为用户可以随时选择退出应用程序但是当他/她回来时,分数和数据应该仍在那里)或者我应该仅在每个游戏结束时更新数据库吗?
显然,第一选择对我来说更有意义,但实施它的最佳方式是什么?另外,不断更新数据库是一种好习惯吗?我应该使用后台线程吗?我应该将数据备份到服务器还是保持本地(如果应用程序被删除)? (这是我第一次创建Android应用程序并且第一次使用数据库 - 所以我不知道最佳做法是什么。)
答案 0 :(得分:1)
Android框架会告诉您活动何时不再有效(Array
(
[0] => Array
(
[date] => 2014-11
[John] => 2135
[Adam] => 5496
)
[1] => Array
(
[date] => 2014-12
[John] => 1526
[Adam] => 5481
[Lizzie] => 3476
)
)
)或可见(onPause
)。这将是保护任何更改的正确时间。
答案 1 :(得分:0)
除了通过设计不断更新数据库不是一个好的做法(至少每次用户触摸屏幕时都不合理,如果你不能正确处理它,就会出现强烈的IO和并发问题),这实际上取决于你的游戏逻辑。如果游戏逻辑允许我优化它并在游戏结束时保存最终得分,那么通过在游戏中间退出,用户将失去他的分数。
关于本地vs远程数据库。我认为这取决于您是否只需要用户的全局高分表或本地。它不应该取决于用户是否删除了游戏。如果他这样做,他可能不会关心他失去的高分。