В чем разница между getIntent () и получением намерения от savedInstanceState?

Привет всем Я пробовал андроид, проходящий намерения между двумя классами, и я понял, что есть два способа передачи намерений,

Первый использует метод getIntent:

Bundle extras = getIntent().getExtras(); mRowId = (extras != null) ? extras.getLong(DrugsDbAdapter.KEY_ROWID) : null; 

Второй способ – доступ к сохраненному состоянию:

 mRowId = (savedInstanceState != null) savedInstanceState.getLong(DrugsDbAdapter.KEY_ROWID) : null; 

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

Solutions Collecting From Web of "В чем разница между getIntent () и получением намерения от savedInstanceState?"

В первом случае вы получаете дополнительные функции, которые начали эту деятельность, а вторая используется, когда onCreate вызывается 2-го и более раз, например, при вращении устройства. Этот пакет должен быть заполнен в onSaveInstanceState .

GetIntent () используется, чтобы сообщить вам, какой из них начал эту Activity . Он доступен в любом месте Activity . Он имеет Bundle , но он также имеет другие метаданные.

onSaveInstanceState(Bundle) передает вам Bundle , чтобы сохранить переменные экземпляра в вашем приложении до следующего запуска. Этот onCreate() поставляется только в onCreate() и onRestoreInstanceState() , и у него нет других данных.