3

これはばかげた質問かもしれませんが、消費するアクティビティによってインテント エクストラを明示的に削除する必要があるというルールはありますか?それとも、インテント オブジェクトをリサイクルしている場合にのみ当てはまりますか?

別の言い方をすれば、次のようなことをして常に次のアクティビティにチェーンする場合:

Intent i = new Intent(MyCurrentActivity.this, FooActivity.class);
i.putExtra("first", "stringvalue");
i.putExtra("second", 69L);
startActivity(i);

次に、FooActivity でそれらを読み返します...

String first = getIntent().getStringExtra("first");
long second = getIntent().getLongExtra("second");

...将来のアクティビティのインテントを誤って汚染することを避けるために、それらを明示的に削除する必要がありますか?それとも、それらを取得した瞬間から、それらが存在することさえ忘れて先に進むことができますか?

それらを削除する必要があると書かれたものを読んだことを覚えていると断言できますが、それを再び見つけることができず、再利用されたインテント オブジェクトにのみ適用される可能性があるのではないかと疑っています。

4

1 に答える 1

2

同じ Intent オブジェクトを使用することを計画しているが、エクストラを必要としない (または望まない) 場合は、それらを削除できます。代わりに、同じエクストラで同じインテントを開始したい場合は、それらを保持してください。最後に、オブジェクトが破壊される場合、誰が余分なものを気にしますか?

いずれにせよ、インテントの受信者ではなく、呼び出し元のアクティビティを決定します。

于 2011-05-23T17:24:05.420 に答える