Jaki jest cel używania android.intent.category.DEFAULT
w polu Kategoria filtrów intencji?
Jaki jest cel używania android.intent.category.DEFAULT
w polu Kategoria filtrów intencji?
Odpowiedzi:
Kategorie są używane dla niejawnych intencji. Tak więc, jeśli Twoja aktywność może zostać uruchomiona przez niejawną intencję, gdy żadna inna kategoria nie jest przypisana do działania, filtr zamiaru działania powinien uwzględniać tę kategorię. (nawet jeśli masz inne kategorie w filtrze Zamiar). Jeśli masz pewność, że Twoja aktywność musi zostać wywołana z inną kategorią, nie używaj opcji Domyślna.
Ustawienie kategorii jako domyślnej nie oznacza, że ta aktywność będzie używana domyślnie po uruchomieniu aplikacji. Zadanie po prostu mówi do systemu, że „ Och, mógłbym zacząć, nawet jeśli początkowa kategoria intencji jest ustawiona na Nic ! ”
Ta kategoria jest używana głównie do ukrytych zamiarów. Jeśli twoja aktywność chce być rozpoczęta z niejawnej intencji, powinna uwzględnić tę kategorię w swoim filtrze.
Myślę, że termin „domyślny” należy rozumieć jako „domyślny kandydat ”. Jeśli akcja na fragmencie danych prowadzi do wielu działań, system Android przedstawi użytkownikowi wszystkich kandydatów, a użytkownik będzie mógł wybrać preferowaną wartość domyślną.
Odniesienie:
http://developer.android.com/guide/components/intents-filters.html
Wyciąg z tej strony:
Android traktuje wszystkie niejawne intencje przekazane do tostartActivity () tak, jakby zawierały przynajmniej jedną kategorię: „android.intent.category.DEFAULT” (stała CATEGORY_DEFAULT). Dlatego działania, które chcą otrzymać ukryte intencje, muszą zawierać „android.intent.category.DEFAULT” w swoich filtrach intencji. (Filtry z ustawieniami „android.intent.action.MAIN” i „android.intent.category.LAUNCHER” są wyjątkiem. Oznaczają działania, które rozpoczynają nowe zadania i są reprezentowane na ekranie programu uruchamiającego. Mogą obejmować „android.intent .category.DEFAULT ”na liście kategorii, ale nie trzeba).
Ma to na celu upewnienie się, że inne czynności mogą być wywoływane, gdy aplikacja jest uruchomiona. LAUNCHER sprawi, że działanie, które go ma, będzie pierwszym działaniem, które się rozpocznie. Aby użyć zamiarów, aby dostać się do innych działań, muszą one zostać wymienione jako „rzeczywiste” działania, wstawiając DEFAULT. To jest z tego, co wiem, więc nie cytuj mnie, jeśli jest źle.
Działania będą musiały obsługiwać CATEGORY_DEFAULT, aby można je było znaleźć przez Context.startActivity ().
Aby otrzymywać niejawne zamiary, w filtrze intencji należy uwzględnić kategorię CATEGORY_DEFAULT. Metody startActivity () i startActivityForResult () traktują wszystkie intencje tak, jakby zadeklarowały kategorię CATEGORY_DEFAULT. Jeśli nie zadeklarujemy tego w naszym filtrze intencji, żadne niejawne zamiary nie przełożą się na naszą aktywność.
Służy do zadeklarowania jakiejś operacji jako akcji domyślnej (jak sugeruje jej nazwa). Rozważmy, że mamy aplikację Notatnik (odnosząc się do próbki Notatnika na Androida). Pierwsza strona aplikacji zawiera listę wszystkich plików notatnika. Po wybraniu jednego pliku notatnika można wykonać jedną z operacji, takich jak edycja notatki, usunięcie notatki itp. Ale chcę, aby edycja była moją domyślną akcją, co oznacza, że kiedy naciskam środkowy przycisk mojej klawiatury, okno edycji powinno być otwarte.
https://developer.android.com/guide/components/intents-filters
Aby otrzymywać niejawne zamiary, w filtrze intencji należy uwzględnić kategorię CATEGORY_DEFAULT. Metody startActivity () i startActivityForResult () traktują wszystkie intencje tak, jakby zadeklarowały kategorię CATEGORY_DEFAULT. Jeśli nie zadeklarujesz tej kategorii w filtrze intencji, żadne niejawne zamiary nie będą miały wpływu na twoje działanie.
Kategoria:
android.intent.category.DEFAULT
Pasuje do dowolnego niejawnego zamiaru. Ta kategoria musi być uwzględniona, aby Twoja aktywność otrzymała ukrytą intencję.