2016-08-19 10 views
0

天気アプリを作成していて、アプリがあまりにも長くアイドル状態になっていることがわかり、予測データが失われてしまっていることが判明しました。だから私は最善の解決策は、内部のストレージにデータを保存し、必要なときにそれを取得することだと思います。内部ストレージへのAndroidライティングクラス

データを含むクラスには、他のデータクラスの2つの配列があり、すべてが文字列、int、およびdoubleを含みます。

このデータを保存するには、どのような方法が最適ですか?私が見てきたオプションは、環境設定ファイルか、ローカルストレージ内のファイルに保存することです。

私は、環境設定ファイルがより少ない量のデータに対してより意味があるように聞こえるため、動作するとは思わなかった。

私はローカルストレージに保存しようとしていましたが、それはうまくいっていません。手動でバイトをファイルに保存することにあまり慣れていないし、Android開発者ガイドはあまり包括的ではありません。それをシリアル化しようとしましたが、シリアル化できないエラーが発生しました。バイトを書く限り、getBytesを使用して文字列をバイトに変換し、intをそのまま保存し、doubleをgetBytesを使用して文字列に変換することで正しく書かれていると思います。私はそれが正しい方法であるかどうかは分かりませんし、特定の数のバイトを読まなければならないので、バイトをどのように読み込むのか分かりません。データの種類ごとにいくつのバイトがあるか調べなければなりませんか?たとえば、文字列エンコーディングのタイプを検索し、そのデータタイプのバイト数を読み取るなどです。

これについてはどうすればよいでしょうか?私は設定ファイルを使うべきですか?誰かがこのようなファイルからデータを読み込む方法を教えてくれるのですか?どんな助けもありがとう。

+0

あなたはSQLiteのを試してみました:

ここであなたが始めるには絶好の読み取りがありますか? – HendraWD

+0

データベースを使った経験がなく、次に勉強することはありません。私はそれがおそらくそれについて行く最善の方法だと思います。私はシリアライズ可能な問題を考え出したので、私はそれがすべて世話を得たと思う。しかし、提案をありがとう。 – jBob

答えて

0

私は異なる量のデータに優先度を使用する傾向があります。共有設定はxmlファイルに保存されます。次に例を示します。

SharedPreferences.Editor editor = context.getSharedPreferences("pref_name", Context.MODE_PRIVATE).edit(); 
editor.putString("name", value); 
... // add all your other items here to save 
editor.commit(); 

ちょうどこのような何かを、データを取得するには:

SharedPreferences preference = context.getSharedPreferences("pref_name", Context.MODE_PRIVATE); 
preference.getString("name", defaultValue); 

それは非常にシンプルで使いやすいです。私は大規模なデータセットを保存することがあります。それらのために、私は通常、データをjsonに変換し、そのjsonを文字列として保存します。データを取得するとjsonからjavaに変換されます。

もう1つの方法は、sqliteデータベースを使用してそこにすべてのデータを格納することです。データベースに保存する方法については、多くのチュートリアルとドキュメントがあります。 https://developer.android.com/guide/topics/data/data-storage.html

+0

情報をありがとう、本当に役立ちます。私はjsonファイルとして保存することは考えていませんでしたが、それは良い考えです。そして、私が読んだことから、多くの人が、好みを使うことを示唆しているようです。そして、SQLについては、次に学ばなければならないのは、データベースです。 保存をシリアル化可能としてファイルに保存することができました。私は問題は配列を保存しようとしていたことだと思うので、ループを使って個々のオブジェクトを配列に書き込んでしまい、今は正常に動作します。私は練習のためにこれをやっているので、私は先に進み、あなたが提案したことを試してみると思います。情報にもう一度感謝します。 – jBob

+0

ええと、jsonを使うとオブジェクトを扱いやすくなります。あなたはjsonとjavaの間で変換する必要があるときヒットがあります。私はオブジェクトのリストを持っているときにjsonを使う傾向があります。共有設定では、Daggerも使いたいです。時間があるかどうか調べてください。 –

関連する問題