データ保存を出来るようにしたよ
前回東京電力の電気使用状況csvファイルを取得出来る様にしましたが、ボタンを押すたびにファイルを取得する様になっていました。
そこで「ファイルを取りに行った時間」と「その時の値」を保存して、一定時間はファイルを取得しないようにしてみました。
今回データを保存するのに使ったのは「プリファレンス」。
ファイル作ってそこに保存したり、SQLiteを使ったりしないといけないのかな〜とか思ってたけど、このプリファレンスを使うとメッチャ簡単!
データをキーIDと結びつけて保存出来て、読込も簡単なの。
でも、これ何処にデータ保存してるんだろうか?
ここら辺はもうちょっと勉強が必要かな。
サンプルはこんな感じ
SharedPreferences sf = getSharedPreferences("PeakGetTime",MODE_PRIVATE); /* ファイルを取得した時間を読込 */ long pgt = sf.getLong("time", 0); /* 前回取得時間よりも10分以上経過していれば取得する */ if((System.currentTimeMillis() - pgt) >= 1000 * 60 * 10){ /* csvを取得し解析 */ 〜 中略 〜 /* 取得時間と電力の値を保存 */ Editor editor = sf.edit(); editor.putLong("time", System.currentTimeMillis()); editor.putString("peak", nowPeak); /* 保存 */ editor.commit(); }else{ /* 保存データを読込み表示 */ String nowPeak = sf.getString("peak", "NoData"); Btn01.setText(nowPeak + "\n(Local data)"); }
これで10分はファイルを取得しないで保存したデータを表示出来る様になりました。