2016-06-15 2 views
-4

実際のアラームを保存するために、私は小さなプライベートSQLデータベースが十分であると考えました。データを保存する前にそれを使用しました。しかし、私は助けることはできませんが、データベースの作成には多くの力が必要だと思うので、代わりに共有の環境設定ファイルを使用し、リンクされたリストをいくつか使用して、アラームごとにいくつかのパラメータを保存します。これは、より少ないスペースを使用する。最高のパフォーマンスを得るには?共有設定ファイルまたはSQLデータベース?

しかし、これは私の考えを得ました、実際にはどのような方法ですか?これは、パフォーマンス、完全性、セキュリティ、共有設定ファイルまたはSQLデータベースの実装が必要な作業量を意味します。値のペア - - キーを格納するための有用な

共有環境設定:ここ

+1

お読みください:https://developer.android.com/guide/topics/data/data-storage。 html –

答えて

2

は、私は長所と短所がある考えるものです。データはプライベートファイルに保存されます。構造化データの概念はなく、標準化されたクエリもありません。書き込み/読み取りはディスクI/O操作を実行するため、超高速ではありません。

SQLite - 構造化データの保存に便利です。 dbはプライベートファイルとして保存されます。クエリに使用されるSQL。パフォーマンスはShared Prefsと似ています。

もっと複雑なデータには、どのような種類の共有優先度も使用しません。データセットに対して検索が実行される場合は、SQLiteは簡単です。データベースのサイズは、使用されているデータの量にのみ依存します。あなたが保管しているものとその保管方法を知りたければ、データベースが制御不能になっているのを見てはいけません。

1

AFAIK SharedPreferencesは、データと最適化されたストレージのより高速なアクセスに常に便利です。実装するのが簡単なコードもあります。

あなたのシナリオのアイデアを提案します。 アラームの場合、4つのプロパティはほとんど必要ありません。

  • 時間
  • 説明
  • REPEATMODE
  • スヌーズ

    コンパイル 'com.google.code.gson:gson:2.3.1'

アラーム。 java

class Alarm{ 
    private String desc; 
    private Date time; 
    private boolean snooze; 
    private int repeat; // 1 - daily ,2- monthly ,3 - yearly ,4 - none 
} 

取得アラーム

import java.lang.reflect.Type; 
Gson gson = new Gson(); 
Type type = new TypeToken<List<Alarm>>(){}.getType(); 
List<Alarm> alarms = gson.fromJson(preferences.getString("alarm",""), type); 

追加アラーム

Gson gson = new Gson(); 
List<Alarm> alarms = new ArrayList<>(); 
alarms.add(new Alarm()); // adding alarm 
String jsonAlarm = gson.toJson(alarms); //coverting list to json and saving back 
editor.put("alarm",jsonAlarm); 
editor.commit(); 
関連する問題