データ保存を出来るようにしたよ


前回東京電力の電気使用状況csvファイルを取得出来る様にしましたが、ボタンを押すたびにファイルを取得する様になっていました。
そこで「ファイルを取りに行った時間」と「その時の値」を保存して、一定時間はファイルを取得しないようにしてみました。

今回データを保存するのに使ったのは「プリファレンス」。
ファイル作ってそこに保存したり、SQLiteを使ったりしないといけないのかな?とか思ってたけど、このプリファレンスを使うとメッチャ簡単!
データをキーIDと結びつけて保存出来て、読込も簡単なの。

でも、これ何処にデータ保存してるんだろうか?
ここら辺はもうちょっと勉強が必要かな。

サンプルはこんな感じ

  1. SharedPreferences sf =
  2.         getSharedPreferences("PeakGetTime",MODE_PRIVATE);
  3.     /* ファイルを取得した時間を読込 */
  4.     long pgt = sf.getLong("time", 0);
  5.     /* 前回取得時間よりも10分以上経過していれば取得する */
  6.     if((System.currentTimeMillis() - pgt)>= 1000 * 60 * 10){
  7.         /* csvを取得し解析 */
  8.         ? 中略 ?
  9.  
  10.         /* 取得時間と電力の値を保存 */
  11.         Editor editor = sf.edit();
  12.         editor.putLong("time", System.currentTimeMillis());
  13.         editor.putString("peak", nowPeak);
  14.         /* 保存 */
  15.         editor.commit();
  16.     }else{
  17.         /* 保存データを読込み表示 */
  18.         String nowPeak = sf.getString("peak", "NoData");
  19.         Btn01.setText(nowPeak + "\n(Local data)");
  20.     }

これで10分はファイルを取得しないで保存したデータを表示出来る様になりました。


Tags:

Leave a Reply