0

我是 android 开发和一般编程的新手。

我正在开发应用程序来为每个球员创建足球统计数据,从长远来看,我使用 SQLite 来存储数据。但是我想知道是否有一种方法以及是否有意义,可以在每次用户尝试添加新统计信息时在我的应用程序运行期间存储数据而不将其插入数据库。

另外我想知道这样做是否有意义,我最大的担心是一直将数据插入数据库会减慢我的应用程序的速度,我会很感激更有经验的开发人员所知道的,并考虑这个问题'

我试图研究这个主题,但我得到的只是将数据存储在数据库中,并使用 SharedPreferences,我认为这不是我想要的,但我可能是错的。

请帮忙。

4

4 回答 4

1

SQlite 是您正在寻找的。SharedPreferences仅用于此-偏好,而不是大量统计数据。

将您的数据库代码放在一个单独的线程中,您不会注意到您的应用程序有任何变慢。回到这里寻求帮助。

于 2012-07-04T15:06:47.187 回答
0

我不能直接与 android 对话,但我在 iPhone 和桌面应用程序上遇到过类似的设计问题。

这取决于应用程序的具体情况,什么是最好的方法。如果您的应用程序主要是关于输入播放和保存统计数据,我会在内存中保留一小组最新统计数据,足以填充用户界面,然后创建一个在后台线程上运行的“数据管理器”,其唯一目的是插入这些数据新添加到数据库的统计信息。

于 2012-07-04T15:08:42.317 回答
0

老实说,我会立即将其放入数据库中。使用 android 的工作方式,如果您的用户导航到另一个应用程序(或者甚至可能接到电话),他们已经输入的数据可能会丢失。

显然可以涵盖这种意外情况(保存onPause等),但我一直认为尽快将数据放入永久存储中更安全。(注意这是一个激烈争论的话题,我只是陈述我的偏好)。

立即保存到数据库不会影响应用程序的速度(取决于您插入的数据类型),而不会影响电池寿命。访问永久存储需要更多的功率,因为​​处理器需要采取更多步骤。

如果您在 UI 线程以外的线程中执行所有 DB 活动,则事务在应用程序速度方面几乎完全不明显。

于 2012-07-04T15:09:35.187 回答
0

如果你使用实现加载器回调它不应该减慢你的应用程序。看看Loader 类。它们可通过 Android 兼容性库获得。

于 2012-07-04T15:10:09.540 回答