В моем приложении для Android я всегда использую прямую putExtra()
функцию Intent
класса, чтобы передать любое количество значений в new Activity
.
Как это:
Intent i = new Intent(this, MyActivity.class);
i.putExtra(ID_EXTRA1, "1");
i.putExtra(ID_EXTRA2, "111");
startActivity(i);
Я знаю об Bundle
Android, и я видел, как люди используют Bundle
для передачи значений новым Activity
.
Как это:
Intent intent = new Intent(this, MyActivity.class);
Bundle extras = new Bundle();
extras.putString("EXTRA_USERNAME","my_username");
extras.putString("EXTRA_PASSWORD","my_password");
intent.putExtras(extras);
startActivity(intent);
Здесь у меня 2 сомнения.
Зачем мне использовать, Bundle
если я могу передавать значения в новый Activity
, помещая его напрямую Intent
?
В чем преимущества использования Bundle
вместо прямого Intent
putExtra()
?
источник
startActivity(intent, options)
илиintent.putExtra()
? Я знаю, что можно сделать и то, и другое, но я просто думаю о лучших практиках? Обычно я не трогаю пакет, переданный onCreate, но у меня нет опыта, поэтому я ищу мнения.Дополнительное преимущество : после того, как данные помещены в Bundle, вы можете отправлять одни и те же данные с помощью нескольких целей. (Только в случае отправки нескольких намерений).
источник
Пакеты - это круто, потому что вы можете легче изолировать их создание / чтение, тем самым отделяя код, обрабатывающий пакеты, от кода пользовательского интерфейса.
В большинстве случаев это бесполезно, так как вы захотите передать минимально возможное количество данных (обычно всего пару строк, идентификатор ...)
источник
вы можете сослаться на намерение и связь между пакетами (Stackoverflow), а также Какова важность пакета в программе Android (Stackoverflow) .
вы можете отправить несколько или несколько данных в одном пакете и отправить их через Intent. или другой способ - добавить несколько операторов PutExtra ().
И, насколько мне известно, такой важной разницы нет.
источник