2017-03-11 6 views
2

私はアンドロイドに新しいですし、私はどのように私はメモリに配列を保存することができます理解したいと思います。私は内部の記憶を意味するものではありません。私は共有された設定、外部記憶装置、およびsqliteについて知っています。私はRAM /ヒープの範囲内の何かを見ています。どのようにAndroidのメモリに配列を保存する

実際の課題は、名前の文字列配列があることです。私は、アプリケーションが最初に起動したときにsqliteデータベースから名前を取得します。

例えば

String[] names = new String[] {"dave", "james", "tommy" } 

このリストは、10000以上のアイテムを含むように成長することができます。

別のアクティビティでは、いくつかの名前がリストに存在するかどうかを確認したいと思います。私はこれを達成するためにデータベースを前後に照会したくありません。だからこそ、私はメモリの節約がパフォーマンスを向上させることができるので、ちょうど良い賭けになるかもしれないと思っています。

この配列をメモリに保存し、別のアクティビティで読み込む方法を知りたいと思います。私はすでに私のRAMを管理する方法を知っている私はちょうどそこにこの情報を取得し、そこから読む方法を探しています。

おかげ

+0

このリストは静的であるか、変更することができますか? –

+0

私は値を変更することができますか? –

+2

あなたのリストは既にRAM /ヒープにあります。それはJavaオブジェクトです... –

答えて

0

Singletonパターンを作成し、その中にあなたのarrayを入れて、あなたはあなたのアプリケーションのインスタンス間で、あなたの配列を共有するが、このsingletonクラスを思い出すことができますので、あなたのあなたの配列は、その中に意志アプリで破壊されます。

これはシングルトンが作成される方法です。

class Bar { 
private static class ArrayHolder { 
    public static List<String> array = new ArrayList<>(); 
} 

public static Bar getArray() { 
    return array; 
} 
} 

あなたの配列にアクセスする必要があるとき

はちょうどこの ArrayHolder.getArray()

+0

ここで 'ArrayHolder'クラスの目的は何ですか?あなたが間違って怠惰なホルダーイディオムをしようとしているようです。怠惰は不要に見えます。 –

+0

シングルトンアプローチを使用して、別のアクティビティで配列からデータを取得できますか? – Tajinere

+1

はい、シングルトンアプローチを使用してデータを取得できます –

関連する問題