前回東京電力の電気使用状況csvファイルを取得出来る様にしましたが、ボタンを押すたびにファイルを取得する様になっていました。
そこで「ファイルを取りに行った時間」と「その時の値」を保存して、一定時間はファイルを取得しないようにしてみました。
今回データを保存するのに使ったのは「プリファレンス」。
ファイル作ってそこに保存したり、SQLiteを使ったりしないといけないのかな?とか思ってたけど、このプリファレンスを使うとメッチャ簡単!
データをキーIDと結びつけて保存出来て、読込も簡単なの。
でも、これ何処にデータ保存してるんだろうか?
ここら辺はもうちょっと勉強が必要かな。
サンプルはこんな感じ
[java]
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)”);
}
[/java]
これで10分はファイルを取得しないで保存したデータを表示出来る様になりました。