1

私はAndroidアプリを構築しており、起動アクティビティでかなり大きなjsonファイル(3.3 mb)をカスタムオブジェクトに解析するか、更新がなかったときにシリアル化されたバイト配列から取得します。サブオブジェクト、リストなどを持つ約500個のオブジェクトのリストを持つ1つのオブジェクトを扱っています。

今、私はこのデータ、または他の活動でその一部が必要です。これに対する最善の解決策は何ですか?新しいアクティビティを開始するたびに、intent.putExtra や parceable を使用してシリアル化および逆シリアル化するためのデータ処理が大量に発生するように思われました。この処理は私が思っているよりも少ないですか、それとも解析クラスを使用して破棄しない方法があるので、次のようなものを使用できます

Myclass.get(nrIneed).Mysubclass.getsomestring

? これは、ロギングまたは解析アクティビティでデータを使用するときに行った方法です。

4

3 に答える 3

2

クラスを使用Applicationしてこのデータを保存し、すべてのアプリケーションで使用できます。Activity

public class BusinessClass extends Application 
{     
     public ParsedData parsedData = new ParsedData();
}

次に、次のコードを使用して任意のアクティビティで呼び出します

BusinessClass appState = ((BusinessClass)getApplicationContext());
appState.parsedData.getData();

詳細については

http://developer.android.com/reference/android/app/Application.html

于 2012-07-20T08:49:26.040 に答える
2

約1MBParcelableを超えるメモリを消費する可能性のあるオブジェクトには使用しないでください。そうしないと、解析が失敗します (少なくとも API レベル 8 による)。

ただし、あなたの場合、解析されたデータを SQLite に保存/整理し、他のアクティビティからクエリすることをお勧めします。これにより、アプリが消費するメモリが少なくなります:)

オブジェクトへの静的参照を作成することもできますが、サイズが非常に大きいため、お勧めしません。これは、メモリ不足の状況で実行しているときに、アプリが Android VM を強制終了する魅力的なターゲットになるためです。

于 2012-07-20T08:51:04.907 に答える
0

データを大きな Json ファイルとして使用するべきではないと思います。最初の起動時にデータベースにデータを保存し、作成/取得/更新/削除が必要な場合にのみこのデータベースを使用する必要があります。

本当に JSON ファイルを使用したい場合は、(アプリケーションのシングルトンなどで) 静的にする必要があります。

これがあなたを助けることを願っています

于 2012-07-20T08:50:42.690 に答える