2

我有一个爱好项目,基本上是以我喜欢的方式维护“待办事项”任务。一项任务可以描述为:

public class TodoItem {
    private String subject;
    private Date dueBy;
    private Date startBy;
    private Priority priority;
    private String category;
    private Status status;
    private String notes;
}

正如你可以想象的那样,在给定的时间我会有 1000 多个待办事项。

  • 存储待办事项的最佳策略是什么?(目前在一个 XML 文件上)这样所有的项目都在应用程序启动时快速加载(应用程序在启动时显示所有项目的仪表板)?
  • 设计其后端以便将其移植到 Android/或基于 J2ME 的手机的最佳方式是什么?
  • 目前这是使用 Java Swing 完成的。我应该专注于什么,以便它在内存有限的设备上有效地工作?
  • 应用程序打开一个表单以输入新的待办事项。现在,一旦用户按下“保存”按钮,我想将新添加的任务保存到 my-todos.xml。将此类更改附加到现有 XML 文件的常用方法是什么?(请注意,我不想再次读取整个文件然后持久保存)
4

4 回答 4

3

对于存储:对于搜索和跨平台支持等问题,SQLite 似乎是一个很好的解决方案。Android 和许多其他设备都支持 SQLite。

于 2010-04-26T04:15:15.077 回答
1

与任何编程问题一样,有很多方法可以做事。但是,通过指定您打算使用电话,您的注意事项列表会发生变化。首先,您需要查看您打算使用的手机,看看它们支持什么。尤其是在数据存储方面。

如果您没有太多数据并且不想启用搜索和其他以随机方式访问数据的功能,则 Xml 或其他一些平面文件格式可以正常工作。

但是,如果您想存储大量数据或进行随机访问,则需要研究更像数据库的数据存储技术。这是您预期的目标平台可能会在性能或存储限制方面施加限制的地方。

另一种选择是您设计应用程序,使其存储操作系统与核心程序分离。这意味着您可以应用不同类型的数据存储,具体取决于它是 PC 还是手机,而不必重新编码其他所有内容。

于 2010-04-26T04:08:30.673 回答
0

想到的一个选项是内存数据库,它以各种形式存在。我还没有使用其中之一,所以我不能告诉你内存使用或平台限制。尽管如此,还是值得一看。

想到的另一个选择是维护一个大型TodoItem对象集合,并编写您自己的代码来读取该集合并将其保存到 XML 文件中。本质上,构建一个包含大型 Map(或您决定使用的任何内容)的类并让此类实现Externalizable

这两个选项都允许您将 XML 文件读取到其在内存中的表示,搜索和更改状态,并最终在应用程序关闭时(或以固定的时间间隔,无论您决定如何)将最终状态写回 XML。

于 2010-04-26T04:58:21.447 回答
0

您也许可以使用java.util.prefs.Preferences.

于 2010-04-26T15:40:55.717 回答