2017-03-01 10 views
-1

私は現在、ListViewの中に項目を表示するアプリケーションを作成しています。ユーザーはこれを追加または削除できます。私はこのデータをローカルのJSONファイルに書き出すことでデータを永続化しています(データをJSONArrayとして保存してから、Serializingの前にtoString()メソッドを呼び出して書き込みます。読み込みは基本的に同じプロセスが逆です)。ローカルファイル用のAndroidベストプラクティス

私はAndroid向けに開発するのがかなり新しいので、ベストプラクティスについてはっきりしていません。具体的には、ローカルファイルやリソースファイルに格納されたデータにアクセスするための最良の方法が何であるかに興味があります。現在、私はAsyncTaskLoaderを使用してこれらのファイルを読み書きしていますが、それがローカルファイルには賢明か、ローカルファイルには必要ない/推奨されているのか疑問に思っています。ローカルファイルにアクセスするためのメインスレッドを実行しても問題ありませんか?AsyncTaskLoader以外のクラスがありますか?

私の主な問題は、AsyncTaskLoaderのパフォーマンス上の問題があり、開発にかなり新しいことがあります。私はこのかなり複雑なクラスを効率的な方法で実装していないと考えています。私が一緒にそれを避けることができるか、それほど複雑でないクラスに置き換えて同様の結果に達するなら、私は設定されると思う。事前にフィードバックをお寄せいただきありがとうございます。また、いくつかのコードスニペットがあれば質問を明確にするのに役立ちます。

+0

jsonデータを簡単に保存します。 –

+0

またはjsonデータをurlから取得する –

+0

最初の@android_jainは、インターネット上ではなくローカルのソースからデータを格納して取得することを検討しています.JSONを使用することを決定しました。 。 –

答えて

-1

データファイルの読み書きが大きい場合は、ThreadまたはAsyncTaskを使用する必要があります。 AsyncTaskは、アンドロイドUIを使用したバッターパフォーマンスのために主に3つの方法を持っています。

データを保存する場合は、json文字列をSharedPreferencesに保存することができます。

AsyncTask

そして

SharedPreferences

+0

を使用します。AsyncTaskは、アンドロイドUIを使用したバッターパフォーマンスのために主に3つのメソッドを持っています。 No. –

+0

パフォーマンスの向上や改造やその他のツールがあります –

+0

私が持っているデータは現時点ではそれほど大きくはないので、完了しても数MBよりもはるかに大きくなるのではないかと疑います。ファイルのサイズに基づいてデータを格納/取得する方法が大きく変わるのか? –

0

のために以下のリンクを参照ビットの周りを検索し、いくつかの異なるものを試した後、私はSQLLightデータベースを実装し、カーソルローダーがあることがわかりましたJSONへの文字列のシリアライズとデシリアライズを試みるよりもずっと速くなります。また、すべてがセットアップされたとき、実装するのがずっと簡単でした。

このプロジェクトは、これを実装する方法のかなり良い例ですhttps://github.com/udacity/ud845-Pets

関連する問題