2

私はAndroidプログラミングが初めてで、次の質問があります。

別のアクティビティ (画面) を呼び出すアクティビティ (画面) があります。インテキストを作成して putExtras を使用することで、Activity2 から値を返すことができます。次に、メインのアクティビティ 1 に戻ると (onActivityResult)、返されたインテントから文字列値のペアを取得できます。

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

質問 2) その後、Activity2 に戻って「新しいインテント .....」を再度実行すると、さらに多くのメモリを割り当てることになり、そうであれば非効率的ですか?」

質問 3 - 呼び出されたアクティビティから呼び出し元のアクティビティにデータを戻すより良い方法はありますか、それとも Intent と putExtras などを使用するのが唯一の方法ですか?

ありがとうトニー

4

3 に答える 3

2

データを送信したいクラスで-

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);

今、受信クラスで、NextClassとしましょう

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

このメソッドを使用することで、あるアクティビティから別のアクティビティにデータを簡単に渡すことができます...

于 2012-04-11T11:50:05.280 に答える
1

私の提案はそうでしょう。

さまざまなアクティビティで使用されたデータがある場合は、代わりに、あるアクティビティから別のアクティビティにインテントを使用してデータを渡します。グローバル レベルの静的変数を作成し、アプリケーションを通じてそのグローバル変数にアクセスします。

于 2012-04-11T11:07:31.460 に答える
0

アクティビティ間で渡すデータの量は? バイト、キロバイト、メガバイト?

その唯一のバイトまたは数キロバイトの場合、これが私の答えです:

  1. ガベージ コレクターについて心配する必要はありません。
  2. はい、より多くのメモリが割り当てられます。いいえ、非効率ではありません
  3. Intent と putExtras が推奨される方法です。

データが非常に大きく、SD カードに保存してアクティビティ間でファイル uri を渡すことができる場合。

于 2012-04-11T08:53:01.750 に答える