2012-04-11 8 views
2

私はアンドロイドプログラミングの新人で、次の質問があります。呼び出されたアクティビティから値を返す

私は別のアクティビティ(画面)を呼び出すアクティビティ(画面)を持っています。私はintextを作成し、putExtrasを使用してActivity2から値を戻すことができます。次に私が主な活動1に戻ると、(onActivityResult)返されるインテントから文字列値のペアを取得できます。

質問1アクティビティ2が終了した場合ガベージコレクタが起動すると、そこで作成されたインテントが解放される可能性はありますか?または、アンドロイドはアプリが終了するまでそのようなメモリをクリアしません。

質問2)私は、「.....新しいテント」やる再びActivity2に戻っている場合は、さらに多くのメモリを割り当てることで、そうであるならば、それは「

質問3は非効率的な - ?あります呼び出し元の活動に戻って呼ばれる活動からのデータを渡すか、意図とputExtrasなどの唯一の方法を使用しているのより良い方法はありますか?

おかげで トニー

答えて

0

どのくらいのデータを、あなたは活動の間を通過するつもりですか?バイト、キロバイトまたはメガバイト?

そのバイトのみまたは一部キロバイトが、これは私の答えである場合:

  1. は、その仕事はい、より多くのメモリが割り当てられます
  2. を行いますガベージcollector.It心配しないでください。いいえ、それは非効率ではありません。
  3. 意図とputExtrasが好ましい方法です。

データが本当に大きい場合は、それをsdカードに保存し、アクティビティ間でファイルuriを渡すことができます。

1

私の提案はありますか。

さまざまなアクティビティで使用されているデータがある場合は、インテントからアクティビティへのインテントを使用してデータを渡します。 Global Level Static変数を作成し、アプリケーションからグローバル変数にアクセスします。あなたがクラスを受けに今DATA-

Intent intent = new Intent(context,NextClass.class); 
intent.putExtra("ACTIVITY_ID","Any value or variable"); 
intent.putExtra("CUSTOMER_ID","Any Value or variable"); 
startActivityForResult(intent, 0); 

を送信したいからクラスで

+0

あなたが上記の答えからアイデアを得たら、他の人に十分に役立つように答えを受け入れてください。 –

+0

グローバル変数は「悪い」ものだと思った;-) – NoToy

2

は、我々は簡単に別の活動からのデータを渡すことができ、この方法を使用することによりNextClass

Bundle extras=getIntent().getExtras(); 
String ACTIVITY_ID=extras.getString("ACTIVITY_ID"); 
String CUSTOMER_ID=extras.getString("CUSTOMER_ID"); 

を言うことができます...

+0

これは私がやっているようなものですが、呼び出されたアクティビティから戻ってきています。上記の投稿に記載されている – NoToy

+0

グローバルな静的変数を作成し、その変数に必要な値を設定し、必要なときにいつでもアクセスすることができます... – Sandeep

関連する問題