2

私は趣味のプロジェクトを持っています。これは基本的に「todo」タスクを好きなように維持することです。1 つのタスクは次のように説明できます。

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

ご想像のとおり、私は一度に何千もの Todo アイテムを持っているでしょう。

  • Todo アイテムを保存するための最良の戦略は何ですか? (現在は XML ファイル上にあります) アプリの起動時にすべてのアイテムがすばやく読み込まれるようにします (アプリケーションは、起動時にすべてのアイテムのダッシュボードのようなものを表示します)。
  • Android/または J2ME ベースの電話に移植できるようにバックエンドを設計する最良の方法は何ですか?
  • 現在、これは Java Swing を使用して行われています。メモリが限られているデバイスで効率的に動作させるには、何に注意すればよいですか?
  • アプリケーションは、フォームを開いて新しい todo タスクを入力します。今のところ、ユーザーが「保存」ボタンを押したら、新しく追加されたタスクを my-todos.xml に保存したいと思います。このような変更を既存の XML ファイルに追加する一般的な方法は何ですか?(ファイル全体を再度読み取って保持したくないことに注意してください)
4

4 に答える 4

3

保存の場合:SQLiteは、検索やクロスプラットフォームのサポートなどに適したソリューションのようです。Androidおよび他の多くのデバイスはSQLiteをサポートしています。

于 2010-04-26T04:15:15.077 に答える
1

他のプログラミングの質問と同様に、物事を行う方法はたくさんあります。ただし、電話に行くつもりであることを指定することにより、考慮事項のリストが変更されます。まず、目的の電話を調べて、それらが何をサポートしているかを確認する必要があります。特にデータストレージの観点から。

データが多すぎず、ランダムな方法でデータにアクセスする検索やその他の機能を有効にしたくない場合は、Xmlまたはその他のフラットファイル形式で問題なく動作します。

ただし、大量のデータを保存したり、ランダムアクセスを実行したりする場合は、データベースに似たデータ保存技術を検討する必要があります。これは、ターゲットプラットフォームがパフォーマンスまたはストレージの制限に関して制限を課す可能性が高い場所です。

もう1つの方法は、コアプログラムから分離されたストレージになるようにアプリケーションを設計することです。つまり、PCか電話かに応じて、さまざまな種類のデータストレージを適用できますが、それ以外のすべてを再コーディングする必要はありません。

于 2010-04-26T04:08:30.673 に答える
0

使えるかもjava.util.prefs.Preferences

于 2010-04-26T15:40:55.717 に答える
0

頭に浮かぶ 1 つのオプションは、さまざまなフレーバーで存在するインメモリ DB です。これらのうちの 1 つをまだ使用していないため、メモリ使用量やプラットフォームの制約についてはお答えできません。それでも一見の価値はあります。

もう 1 つの選択肢として、TodoItemオブジェクトの大規模なコレクションを維持し、独自のコードを記述して、このコレクションを読み取り、XML ファイルに永続化するという方法があります。基本的に、大きな Map (または使用することに決めたもの) を含むクラスを構築し、このクラスに を実装させExternalizableます。

これらのオプションの両方を使用すると、XML ファイルをメモリ内表現に読み取り、状態を検索して変更し、最終的にアプリがダウンしたときに (または決められた一定の間隔で) 最終状態を XML に書き戻すことができます。

于 2010-04-26T04:58:21.447 に答える