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

前回東京電力の電気使用状況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分はファイルを取得しないで保存したデータを表示出来る様になりました。