- Co to jest zamiar w Androidzie?
- Czy ktoś może opracować przykład?
- Jakie są rodzaje intencji i dlaczego ich używamy?
- Dlaczego intencje są tak ważne w systemie Android?
Odpowiedzi:
Intent jest „zamiar”, aby wykonać działanie; innymi słowy,
obiekt wiadomości, którego można użyć do żądania działania z innego komponentu aplikacji
Zamiar to w gruncie rzeczy komunikat, że zrobiłeś lub chcesz, aby coś się wydarzyło. W zależności od intencji aplikacje lub system operacyjny mogą nasłuchiwać i odpowiednio zareagują. Pomyśl o tym jak o świetnym e-mailu do grona znajomych, w którym mówisz swojemu przyjacielowi Johnowi, aby coś zrobił, lub znajomym, którzy mogą zrobić X ( „filtry intencyjne” ), aby zrobić X. Inni ludzie zignorują ten e-mail, ale John (lub przyjaciele, którzy potrafią wykonać X) zareagują na to.
Aby nasłuchiwać zamiaru transmisji (np. Dzwonka telefonu lub odebrania wiadomości SMS), zaimplementuj odbiornik transmisji , który przejdzie cel. Aby zadeklarować, że możesz obsłużyć zamiary aplikacji innej osoby, takie jak „zrób zdjęcie”, zadeklaruj filtr zamiarów w pliku manifestu aplikacji .
Jeśli chcesz odpalić zamiar zrobienia czegoś, np. Podnieść dialer, odpalasz zamiar, że tak zrobisz.
Intent to w zasadzie, że wiadomość jest przekazywana między składnikami (takimi jak Działalności , Usług, broadcast odbiorników i Dostawców Treści ). Jest więc prawie równoważny parametrom przekazywanym do wywołań API. Podstawowe różnice między wywołaniami interfejsu API a wywoływaniem komponentów za pośrednictwem zamiarów to:
Oczywiście intencje można sprawić, by działały dokładnie tak jak wywołania API, używając tak zwanych intencji jawnych, co zostanie wyjaśnione później. Ale najczęściej ukryte intencje są właściwą drogą i właśnie to zostało tutaj wyjaśnione.
Jeden element, który chce się przywołać, musi wyrazić jedynie zamiar wykonania pracy. I każdy inny element, który istnieje i który twierdzi, że może wykonać takie zadanie za pomocą filtrów intencji , jest przywoływany przez platformę Android w celu wykonania zadania. Oznacza to, że żaden z komponentów nie jest świadomy swojego istnienia, ale może nadal współpracować, aby dać pożądany efekt końcowemu użytkownikowi.
To niewidoczne połączenie między komponentami jest osiągane poprzez połączenie zamiarów, filtrów zamiarów i platformy Android.
Prowadzi to do ogromnych możliwości, takich jak:
Oto dodatkowe szczegóły techniczne na temat zamiarów z dokumentacji Androida .
Zamiarem jest abstrakcyjny opis operacji do wykonania. Można go użyć z startActivity do uruchomienia działania, broadcastIntent w celu wysłania go do wszystkich zainteresowanych komponentów BroadcastReceiver oraz startService (Intent) lub bindService (Intent, ServiceConnection, int) w celu komunikacji z usługą w tle.
Intent zapewnia funkcję umożliwiającą późne wiązanie środowiska wykonawczego między kodem w różnych aplikacjach. Jego najbardziej znaczącym zastosowaniem jest uruchamianie działań, gdzie można to traktować jako klej pomiędzy czynnościami. Zasadniczo jest to pasywna struktura danych zawierająca abstrakcyjny opis akcji do wykonania. Najważniejsze informacje w zamiarze to:
- akcja Ogólne działanie, które należy wykonać, takie jak ACTION_VIEW, ACTION_EDIT, ACTION_MAIN itp.
- dane Dane, na których ma działać operacja, takie jak rekord osoby w bazie danych kontaktów, wyrażone jako Uri.
Intencje to sposób na powiedzenie Androidowi, co chcesz zrobić . Innymi słowy, opisujesz swój zamiar. Za pomocą zamiarów można zasygnalizować systemowi Android, że wystąpiło określone zdarzenie. Inne komponenty w Androidzie mogą zarejestrować się na to wydarzenie poprzez filtr celowy.
Poniżej znajdują się 2 rodzaje zamiarów
służy do wywoływania określonego komponentu. Gdy wiesz, który komponent chcesz uruchomić, i nie chcesz dać użytkownikowi swobodnej kontroli nad tym, którego komponentu chcesz użyć. Na przykład masz aplikację, która ma 2 działania. Działanie A i działanie B. Chcesz uruchomić działanie B z działania A. W tym przypadku definiujesz wyraźne zamiary ukierunkowane na działanie B, a następnie używasz go do bezpośredniego wywołania.
używane, gdy masz pojęcie o tym, co chcesz zrobić, ale nie wiesz, który składnik powinien zostać uruchomiony. Lub jeśli chcesz dać użytkownikowi opcję wyboru między listą komponentów do użycia. Jeśli te zamiary zostaną wysłane do systemu Android, wyszuka wszystkie komponenty zarejestrowane dla określonego działania i typu danych. Jeśli zostanie znaleziony tylko jeden składnik, system Android uruchomi go bezpośrednio. Na przykład masz aplikację, która używa aparatu do robienia zdjęć. Jedną z funkcji Twojej aplikacji jest to, że dajesz użytkownikowi możliwość wysłania zdjęć, które zrobił. Nie wiesz, jaką aplikację ma użytkownik, który może wysyłać zdjęcia, a także chcesz dać użytkownikowi możliwość wyboru aplikacji zewnętrznej, jeśli ma więcej niż jedną. W takim przypadku nie użyłbyś wyraźnej intencji.
Jednoznaczne zamiary są zawsze dostarczane do celu, bez względu na to, co zawiera; filtr nie jest sprawdzany. Ale niejawna intencja jest dostarczana do komponentu tylko wtedy, gdy może przejść przez jeden z filtrów komponentu
Jeśli zamiary zostaną wysłane do systemu Android, określi odpowiednie aplikacje dla tych zamiarów. Jeśli zarejestrowano kilka komponentów dla tego typu Intencji, Android oferuje użytkownikowi możliwość otwarcia jednego z nich.
To ustalenie opiera się na IntentFilters. IntentFilters określa typy zamiarów, na które może reagować działanie, usługa lub odbiornik emisji. Filtr zamiarów deklaruje możliwości komponentu. Określa to, co może zrobić anaktywność lub usługa i jakie rodzaje transmisji może obsłużyć odbiornik. Umożliwia odpowiedniemu komponentowi otrzymywanie Intencji deklarowanego typu. IntentFilters są zazwyczaj definiowane za pomocą pliku AndroidManifest.xml. W przypadku BroadcastReceiver można również zdefiniować je w kodowaniu. Filtr IntentFilters jest definiowany przez filtry kategorii, akcji i danych. Może także zawierać dodatkowe metadane.
Jeśli komponent nie definiuje filtru zamiaru, można go wywołać tylko przez jawne zamiary.
Poniżej przedstawiono 2 sposoby definiowania filtra
Jeśli zdefiniujesz filtr zamiaru w manifeście, aplikacja nie musi być uruchomiona, aby zareagować na zamiary zdefiniowane w filtrze. Android rejestruje filtr po zainstalowaniu aplikacji.
Jeśli chcesz, aby odbiornik radiowy odbierał informacje tylko wtedy, gdy aplikacja jest uruchomiona. Następnie powinieneś zdefiniować swój filtr zamiarów w czasie wykonywania (programowo). Pamiętaj, że działa to tylko w przypadku odbiorników telewizyjnych.
Po napisaniu pojedynczego działania pojawia się potrzeba przejścia do innego działania w celu wykonania innego zadania z informacjami lub bez pierwszego działania.
Platforma Android umożliwia przejście za pomocą Intent Interface.
Słowa zostały zaczerpnięte stąd: używając Intent Demo i proponuję przejść przez ten przykład, ponieważ dostarczyli również plik kodu. dzięki czemu możesz go używać i łatwo zrozumieć to samo.
Android Intent umożliwia nawigację między aktywnością Androida. Z przykładami w tym samouczku omówiono różne rodzaje zamiarów Androida.
Android Intent można zdefiniować jako proste obiekty wiadomości, które służą do komunikowania się z jednej aktywności do drugiej.
Zamiary określają zamiar aplikacji. Służą również do przesyłania danych między czynnościami.
System Android Intent może służyć do wykonywania następujących 3 zadań:
Cel można ogólnie podzielić na 2 kategorie. Brak słów kluczowych dla tej kategorii, a jedynie ogólna klasyfikacja sposobu wykorzystania zamiarów Androida.
Jawne zamiary Androida
Jawna intencja Androida to intencja, w której wyraźnie definiujesz komponent, który musi zostać wywołany przez system Android.
Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);
Domniemana intencja Androida
Domniemane intencje Androida to intencja, w której zamiast definiowania dokładnych komponentów określasz akcję, którą chcesz wykonać. Decyzję o obsłużeniu tej akcji należy do systemu operacyjnego. System operacyjny decyduje, który składnik najlepiej uruchamiać w przypadku niejawnych zamiarów. Zobaczmy przykład:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
Więcej informacji można znaleźć poniżej
http://developer.android.com/reference/android/content/Intent.html
Według ich dokumentacji:
Intent to obiekt, który zapewnia powiązanie środowiska wykonawczego między osobnymi komponentami (takimi jak dwa działania). Zamiar reprezentuje „zamiar zrobienia czegoś przez aplikację”. Możesz użyć zamiarów do wielu różnych zadań, ale najczęściej są one używane do rozpoczęcia innej czynności.
Oto link z przykładem: http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent
Jak opisano w dokumencie, aby rozpocząć działanie (musisz również zrozumieć, co to jest działanie), skorzystaj z poniższych wskazówek
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
Zamiarem jest abstrakcyjny opis operacji do wykonania. Można go używać z startActivity do uruchamiania działania, broadcastIntent w celu wysłania go do dowolnych zainteresowanych komponentów BroadcastReceiver oraz startService (Intent) lub bindService (Intent, ServiceConnection, int) do komunikacji z usługą w tle.
Aby uzyskać więcej informacji, zobacz te linki:
1). http://developer.android.com/reference/android/content/Intent.html
2) http://developer.android.com/guide/topics/intents/intents-filters.html
3). http://www.vogella.de/articles/AndroidIntent/article.html
dostępnych jest wiele innych artykułów.
co to jest zamiar
Jest to rodzaj wiadomości lub informacji przekazywanych do komponentów. Służy do uruchamiania aktywności, wyświetlania strony internetowej, wysyłania SMS-ów, wysyłania wiadomości e-mail itp.
Istnieją dwa rodzaje zamiarów w Androidzie:
Domniemany zamiar
Jawny zamiar
Do wywołania komponentów systemu służy niejawna intencja
Przykład
Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));
startActivity(i);
Jawna intencja służy do wywołania klasy aktywności.
Przykład
Intent intent = newIntent (this, SecondActivity.class);
startActivity(intent);
możesz przeczytać więcej
http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html
W szerokim widoku możemy zdefiniować Intent jako
Gdy jedno działanie chce rozpocząć inne działanie, tworzy obiekt o nazwie Intent, który określa, które działanie chce rozpocząć.
Aplikacja na Androida może zawierać zero lub więcej działań. Gdy aplikacja ma więcej niż jedną aktywność, często musisz nawigować między nimi. W Androidzie możesz poruszać się między czynnościami poprzez tak zwane zamiary. Możesz przekazać niektóre dane do działania, które chcesz rozpocząć poprzez zamiar, używając putExtra ().
Z papierowego Deep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013
linku
Cel ten jest rozumiany w kilku małych, ale skutecznych liniach
Z tego wątku prosta odpowiedź architekta Androida Dianne Hackborn stwierdza, że tak data container
naprawdę jest.
Z punktu widzenia architektury Androida :
Intent to kontener danych, który służy do komunikacji między procesami. Jest zbudowany na Binder
podstawie architektury Android.
Intencje są używane do inicjowania innej aktywności z jednego działania. Zasadniczo są wykorzystywane do kilku celów, takich jak wysyłanie danych do innego działania z jednego działania oraz do celów wyzwalania.
Są to zasadniczo dwa rodzaje
Domniemane intencje.
Jawne zamiary.
Jako początkujący wiem tak dużo, myślę, że da to podstawowe pojęcie o intencjach Androida