2016-09-23 7 views
1

ContentProvider、私がArrayListに格納しているものを通して、私のアプリケーションの主なアクティビティのデータの束を照会します。私は特定のオブジェクトを他のアクティビティやサービスにユーザーの入力に基づいて渡す​​必要があります。したがって、新しいコンテキストで必要なすべてのデータを再集計することは、実際の状況と重労働です。私はそれをしたくありません。これらのオブジェクトをアプリケーションコンポーネント間でどのように格納して転送する必要がありますか?異なるコンテキストからアクセスする必要がある場合、データをどのように保存する必要がありますか?

+1

を呼び出すアプリのアクティビティ、サービスまたはreciverのにアクセスすることができますそれを分かりやすくしてインテントと放送で捨てる。 – Machinarius

答えて

0

データが小さい場合は、インテントメカニズムを使用してください...アプリケーション内の1つのセッションにのみ必要な大量のデータがある場合は、シングルトンを使用してください。 データが必要な場合永続的であるためには、

0

あなたはデータ

などを格納するための静的クラスを作成することができます...あなたはまた、SQLコードを書くことを避けるためにORMのいくつかの種類を確認することができます... SQLiteデータベースに行きます - - このデータはその後、アプリ近い場合は接近していないアプリまで保存することができます:それはトーストしますMainactivity.class

public class temp_data { 
    public static ArrayList arraylist; 
    public static String str="temp string is it"; 
} 

コール

public class MainActivity extends AppCompatActivity{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toast.makeText(MainActivity.this, ""+temp_data.str,Toast.LENGTH_SHORT).show();   
} 

ノート「一時文字列は、それがあります」データが失われることがあります。

  • とデータだけで(あなたのArrayListの選択は、それが思われてしまうと)私はむしろあなたのデータは小さいだろうと仮定すると、

classname.variablename

+0

ガベージコレクタは静的クラスとその中のデータを削除する可能性があるため、このメソッドはデバイスメモリが少なくなったときにNullpointer例外が発生する可能性があることに注意してください。 – Luke

+0

あなたはデータベースまたは共有の環境設定を使用することができますortherは動作しません、私の提案データベースを使用する。 mysqlやsqlのようなデータを簡単に保存して、簡単にクエリを使用してデータを取得することができます。 https://developer.android.com/training/basics/data-storage/databases.htmlを試してみてください。 – vishal

関連する問題