W mojej aplikacji na Androida zawsze używam bezpośredniej putExtra()
funkcji Intent
klasy do przekazywania dowolnej liczby wartości do new Activity
.
Lubię to:
Intent i = new Intent(this, MyActivity.class);
i.putExtra(ID_EXTRA1, "1");
i.putExtra(ID_EXTRA2, "111");
startActivity(i);
Wiem o Bundle
Androidzie i widziałem, jak ludzie używają Bundle
do przekazywania wartości nowym Activity
.
Lubię to:
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);
Tutaj mam 2 wątpliwości.
Dlaczego powinienem używać, Bundle
jeśli mogę przekazywać wartości do new Activity
, umieszczając je bezpośrednio Intent
?
Jakie są zalety używania Bundle
zamiast bezpośredniego Intent
putExtra()
?
źródło
startActivity(intent, options)
lubintent.putExtra()
? Wiem, że można to zrobić i jedno i drugie, ale myślę tylko o najlepszej praktyce? Zwykle nie dotykam pakietu przekazanego do onCreate, ale jestem niedoświadczony, więc szukam opinii.Dodatkowa zaleta : po umieszczeniu danych w paczce możesz wysłać te same dane wieloma celami. (Tylko w tym przypadku należy wysłać kilka intencji).
źródło
Pakiety są fajne, ponieważ można łatwiej izolować ich tworzenie / odczytywanie, oddzielając w ten sposób kod obsługujący pakiety od kodu interfejsu użytkownika.
W większości przypadków jest to bezużyteczne, ponieważ będziesz chciał przesłać jak najmniejszą ilość danych (zwykle tylko kilka ciągów, identyfikator ...)
źródło
możesz odnieść się do intencji i relacji między pakietami (Stackoverflow), a także Jakie jest znaczenie pakietu w programie na Androida (Stackoverflow) .
możesz wysłać wiele lub kilka danych w jednym pakiecie i wysłać je przez Intent. lub innym sposobem jest dodanie wielu instrukcji PutExtra ().
I nie ma takiej istotnej różnicy, o której wiem.
źródło