Нужно ли удалять дополнения Intent?

Это может быть глупый вопрос, но существует ли правило, согласно которому дополнительные намерения должны быть явно удалены потребляющей активностью, или это верно только в том случае, если вы перерабатываете объекты Intent?

Другими словами, если я всегда привязываюсь к следующему действию, делая что-то вроде:

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

... я должен также явно удалить их, чтобы случайно не загрязнить намерение будущей деятельности, или с того момента, как я закончу их захват, могу ли я просто забыть о них и двигаться дальше?

Я могу поклясться, что помню, как читал что-то, в котором говорилось, что мне нужно их удалить, но я не смог найти это снова, и я подозреваю, что это может относиться только к повторно используемым объектам намерения.


person Bitbang3r    schedule 23.05.2011    source источник
comment
Удаление дополнений в JB имеет проблемы. Если вы вернетесь к действию после удаления лишнего, оно все равно будет вызвано. Любые идеи? Спасибо!   -  person MSquare    schedule 24.06.2013


Ответы (1)


Если вы планируете использовать тот же объект Intent, но не нуждаетесь (и не хотите) в дополнительных компонентах, вы можете удалить их. Если вместо этого вы хотите вызвать начало того же намерения с теми же дополнениями, то сохраните их. Наконец, если объект будет уничтожен, кого волнуют дополнительные услуги?

В любом случае я бы принял решение об активности вызывающего абонента, а не о получателе намерения.

person Aleadam    schedule 23.05.2011
comment
В свете как этого ответа, так и комментария MSquare (выше) кажется, что безопаснее всего просто оставить дополнения Intent в покое и позволить сборщику мусора справиться с ними. - person Bitbang3r; 28.06.2013