<aktywność>

składnia:
<activity android:allowEmbedded=["true" | "false"]
          android:allowTaskReparenting=["true" | "false"]
          android:alwaysRetainTaskState=["true" | "false"]
          android:autoRemoveFromRecents=["true" | "false"]
          android:banner="drawable resource"
          android:canDisplayOnRemoteDevices=["true" | "false"]
          android:clearTaskOnLaunch=["true" | "false"]
          android:colorMode=[ "hdr" | "wideColorGamut"]
          android:configChanges=["colorMode", "density",
                                 "fontScale", "fontWeightAdjustment",
                                 "grammaticalGender", "keyboard",
                                 "keyboardHidden", "layoutDirection", "locale",
                                 "mcc", "mnc", "navigation", "orientation",
                                 "screenLayout", "screenSize",
                                 "smallestScreenSize", "touchscreen", "uiMode"]
          android:directBootAware=["true" | "false"]
          android:documentLaunchMode=["intoExisting" | "always" |
                                  "none" | "never"]
          android:enabled=["true" | "false"]
          android:enabledOnBackInvokedCallback=["true" | "false"]
          android:excludeFromRecents=["true" | "false"]
          android:exported=["true" | "false"]
          android:finishOnTaskLaunch=["true" | "false"]
          android:hardwareAccelerated=["true" | "false"]
          android:icon="drawable resource"
          android:immersive=["true" | "false"]
          android:label="string resource"
          android:launchMode=["standard" | "singleTop" |
                              "singleTask" | "singleInstance" | "singleInstancePerTask"]
          android:lockTaskMode=["normal" | "never" |
                              "if_whitelisted" | "always"]
          android:maxRecents="integer"
          android:maxAspectRatio="float"
          android:multiprocess=["true" | "false"]
          android:name="string"
          android:noHistory=["true" | "false"]  
          android:parentActivityName="string" 
          android:persistableMode=["persistRootOnly" | 
                                   "persistAcrossReboots" | "persistNever"]
          android:permission="string"
          android:process="string"
          android:relinquishTaskIdentity=["true" | "false"]
          android:requireContentUriPermissionFromCaller=["none" | "read" | "readAndWrite" |
                                                         "readOrWrite" | "write"] 
          android:resizeableActivity=["true" | "false"]
          android:screenOrientation=["unspecified" | "behind" |
                                     "landscape" | "portrait" |
                                     "reverseLandscape" | "reversePortrait" |
                                     "sensorLandscape" | "sensorPortrait" |
                                     "userLandscape" | "userPortrait" |
                                     "sensor" | "fullSensor" | "nosensor" |
                                     "user" | "fullUser" | "locked"]
          android:showForAllUsers=["true" | "false"]
          android:stateNotNeeded=["true" | "false"]
          android:supportsPictureInPicture=["true" | "false"]
          android:taskAffinity="string"
          android:theme="resource or theme"
          android:uiOptions=["none" | "splitActionBarWhenNarrow"]
          android:windowSoftInputMode=["stateUnspecified",
                                       "stateUnchanged", "stateHidden",
                                       "stateAlwaysHidden", "stateVisible",
                                       "stateAlwaysVisible", "adjustUnspecified",
                                       "adjustResize", "adjustPan"] >   
    ...
</activity>
zawarte w:
<application>
mogą zawierać:
<intent-filter>
<meta-data>
<layout>
description:
Deklaruje aktywność (podklasę Activity), która implementuje część wizualnego interfejsu użytkownika aplikacji. Cała aktywność musi być reprezentowana przez atrybut <activity> elementów w pliku manifestu. Te, które nie zostały zadeklarowane, nie są widoczne przez system i nigdy nie są uruchamiane.
atrybuty:
android:allowEmbedded

Wskazuje, że aktywność może być uruchamiana jako umieszczona element podrzędny innego aktywność, zwłaszcza w sytuacji, gdy dziecko mieszka w kontenerze, na przykład konto Display należące do innej aktywności. Na przykład aktywności używane na potrzeby niestandardowych powiadomień na Wear – Wear może wyświetlać aktywność w strumieniu kontekstu, w inny sposób.

Domyślna wartość tego atrybutu to false.

android:allowTaskReparenting
Określenie, czy aktywność można przenieść z zadania, które ją rozpoczęło, do związane z nim zadanie, z którym może z przodu. Wartość wynosi "true", jeśli może się poruszać, lub "false", jeśli może się poruszać będzie kontynuował zadanie od miejsca, w którym je zaczęło.

Jeśli ten atrybut nie jest ustawiony, wartość ustawiana przez odpowiadającą mu wartość allowTaskReparenting atrybut elementu <application> ma zastosowanie do danej aktywności. Wartością domyślną jest "false".

Normalnie rozpoczęcie aktywności wiąże się z zadaniem to działanie, które ją zainicjowało, i pozostaje tam przez całe życie. Możesz użyć tego atrybutu, aby wymusić ponowne nadrzędne wobec niego zadanie ma koligację, w której bieżące zadanie nie jest już wyświetlane. Zazwyczaj powoduje to przeniesienie działań w aplikacji do głównego zadania powiązanego z tą aplikacją.

Jeśli na przykład e-mail zawiera link do strony internetowej, kliknij link powoduje wyświetlenie działania, które może spowodować wyświetlenie strony. To działanie jest definiowane przez aplikację przeglądarki, ale uruchamia się jako część wiadomości zadanie. Jeśli jest zmapowane na zadanie przeglądarki, pokazuje, kiedy przeglądarka jest wyświetlana na wierzchu i nie ma jej, gdy zadanie poczty e-mail Znowu coś się dzieje.

Koligacja aktywności jest określana przez taskAffinity. Podobne zainteresowania zadania określa się na podstawie koligacji jego głównego działania. Dlatego z definicji działanie roota jest zawsze uwzględniane w zadaniu podobne zainteresowania. Ponieważ aktywności z "singleTask" lub Tryby uruchamiania "singleInstance" mogą znajdować się tylko w głównej części zadania, zmiana rodzicielstwa jest ograniczona do "standard" i "singleTop" i trybów wyświetlania. (Zobacz też launchMode ).

android:alwaysRetainTaskState
Czy stan zadania, w którego znajduje się aktywność, to zawsze utrzymywany przez system. "true", jeśli jest, oraz "false", jeśli system może zresetować zadanie do początku w określonych sytuacjach. Wartością domyślną jest "false". Ten ma znaczenie tylko dla głównego działania danego zadania. Jest ignorowany. do wszystkich innych działań.

Normalnie system usuwa zadanie, usuwając wszystkie działania ze stosu. nad działaniem głównym, w pewnych sytuacjach, gdy użytkownik ponownie wybierze to na ekranie głównym. Zwykle dzieje się tak, jeśli użytkownik nie odwiedził żadnej strony. wykonać zadanie przez określony czas, np. 30 minut.

Jeśli jednak atrybut ma wartość "true", użytkownicy zawsze zwracają w ostatnim stanie, niezależnie od tego, w jaki sposób do niego dotrze. To jest przydatny w aplikacji, takiej jak przeglądarka, w wielu miejscach, takich jak wiele otwartych kart, których użytkownicy nie chcą utracić.

android:autoRemoveFromRecents
Czy zadania uruchomione przez aktywność z tym atrybutem pozostają w sekcji Ekran Ostatnie do ostatniej aktywności w . Jeśli true, zadanie jest zostaną automatycznie usunięte z ekranu Ostatnie. Zastępuje to użycie przez dzwoniącego FLAG_ACTIVITY_RETAIN_IN_RECENTS Musi to być wartość logiczna "true" lub "false".
android:banner
Zasób rysowalny wyświetlając rozszerzony baner graficzny dla powiązanego elementu. Używaj razem z <activity>, aby udostępnić domyślny baner dla określonej aktywności lub w tagu <application>. do przesyłania banera wszystkich działań w aplikacji.

System używa banera do reprezentowania aplikacji w na ekranie głównym Androida TV. Baner wyświetla się tylko na ekranie głównym, jest określane tylko przez aplikacje z działaniem, które obsługuje Intencja CATEGORY_LEANBACK_LAUNCHER.

Ten atrybut jest ustawiony jako odniesienie do zasobu rysowalnego zawierającego obraz, na przykład "@drawable/banner". Brak domyślnego banera.

Więcej informacji można znaleźć w sekcji Udostępnij baner na ekranie głównym w artykule Pierwsze kroki z aplikacjami telewizyjnymi.

android:canDisplayOnRemoteDevices

Wskazuje, czy aktywność może być wyświetlana na urządzeniu zdalnym, które może nie mieć Androida. Musi to być wartość logiczna "true" lub "false".

Domyślna wartość tego atrybutu to "true".

android:clearTaskOnLaunch
Czy z zadania zostaną usunięte wszystkie działania oprócz działania roota po ponownym uruchomieniu z poziomu ekranu głównego. "true", jeśli zadanie jest zawsze ograniczone do głównej aktywności oraz "false", jeśli nie. Wartością domyślną jest "false". Ten atrybut ma znaczenie tylko w przypadku działań, które rozpoczynają nowe zadanie, czyli działania głównego. Jest ignorowana w przypadku wszystkich innych działań w zadaniu.

Jeśli wartość wynosi "true", przy każdym uruchomieniu zadania przez użytkownika są przywracane do głównej aktywności niezależnie od tego, co ostatnio wykonywali niezależnie od tego, czy użytkownik użył przycisku Wstecz czy przycisku ekranu głównego, Zostawcie go. Gdy wartość wynosi "false", zadanie można usunąć z działań w ale nie zawsze. Więcej informacji: alwaysRetainTaskState.

Załóżmy, że użytkownik uruchamia aktywność P na ekranie głównym, a stamtąd przechodzi do ćwiczenia Q. Użytkownik klika przycisk strony głównej, a potem wraca do aktywności P. Normalnie użytkownik widzi aktywność Q, bo to właśnie ona co ostatnio wykonali w zadaniu P. Jeśli jednak P ustawi tę flagę na "true", wszystkie powiązanych z nim aktywności (w tym przypadku Q) są usuwane po uruchomieniu aplikacji przez użytkownika. Aktywność P na ekranie głównym. Dzięki temu po powrocie do zadania użytkownik będzie widzieć tylko P.

Jeśli ten atrybut oraz atrybut allowTaskReparenting "true", wszystkie działania, które można nadać rodzicom, są przenoszone do z którym mają wspólne zainteresowania. Pozostałe działania są usuwane.

Jeśli nie ustawiono atrybutu FLAG_ACTIVITY_RESET_TASK_IF_NEEDED, ten atrybut jest ignorowany.

android:colorMode

Określa tryb kolorów aktywności. Jeśli została określona, może mieć wartość hdr lub wideColorGamut

Jeśli hdr, prosi o wyświetlenie aktywności w wysokim zakresie dynamicznym, jeśli urządzenie ją obsługuje.

Jeśli wideColorGamut, prosi o wyświetlenie aktywności w trybie szerokiej gamy kolorów. na zgodnych urządzeniach. W trybie szerokiej gamy kolorów okno może być renderowane poza Gama: SRGB do i wyświetlaj bardziej żywe kolory. Jeśli urządzenie nie obsługuje renderowania o szerokiej gamie kolorów, nie ma żadnego efektu. Więcej informacji o renderowaniu w trybie szerokich kolorów znajdziesz w artykule Ulepszaj grafikę, dodając treści o szerokiej gamie kolorów.

android:configChanges
Zawiera zmiany konfiguracji, które są obsługiwane przez aktywność. Gdy konfiguracja zmiana zachodzi w czasie działania, działanie domyślnie wyłącza się i uruchamia ponownie, ale po zadeklarowaniu zapobiega ponownemu uruchomieniu aktywności. Zamiast tego makro działanie pozostaje aktywne, a jego metoda onConfigurationChanged() jest wywoływana.

Uwaga: używaj tego atrybutu tylko w szczególnych przypadkach, aby ulepszyć aplikację. wydajności i responsywności. Więcej informacji znajdziesz w artykule Obsługa zmian konfiguracji.

Następujące ciągi znaków są prawidłowymi wartościami tego atrybutu. Zastosowanie wielu wartości oddzielone znakiem |, na przykład "locale|navigation|orientation".

Wartość Opis
"colorMode"

Zmieniły się możliwości trybu kolorów ekranu (gama kolorów lub zakres dynamiczny).

Uwaga: tryb kolorów, którego wymaga aktywność z atrybutem colorMode lub w czasie działania, różni się od trybu kolorów, w przypadku których występują różne tryby kolorów. Działanie zmieniające używany tryb kolorów nie powoduje zmiany konfiguracji, bo funkcje kolorystyczne wyświetlacza się nie zmieniły.

"density"

zmiany gęstości wyświetlania, np. gdy użytkownik określi inna skala wyświetlacza lub inny wyświetlacz.

Dodano na poziomie interfejsu API 24.

"fontScale" zmiana współczynnika skalowania czcionki, np. wybór przez użytkownika; nowy globalny rozmiar czcionki.
"fontWeightAdjustment" Zmieniła się wielkość czcionki.
"grammaticalGender" Zmieniła się rodzaj gramatyczna języka. Zobacz GrammaticalInflectionManager

Dodano na poziomie interfejsu API 34.

"keyboard" zmiana typu klawiatury, na przykład informacje o tym, kiedy użytkownik podłącza się klawiaturę zewnętrzną.
"keyboardHidden" Zmiana w ułatwieniach dostępu klawiatury, na przykład użytkownik pokazuje klawiaturę sprzętową.
"layoutDirection"

zmiana kierunku układu, na przykład z od lewej do prawej (LTR) na od prawej do lewej (RTL).

Dodano na poziomie API 17.

"locale" zmianę regionu, na przykład po wybraniu przez użytkownika nowego. język, w którym wyświetla się tekst.
"mcc" Zmiana na kod kraju mobilnego IMSI, gdy została wykryta karta SIM aktualizująca konto MCK.
"mnc" Zmiana kodu sieci komórkowej IMSI (MNC) w przypadku została wykryta karta SIM aktualizująca MNC.
"navigation" TA – zmiana na typ nawigacji (kulka lub pad kierunkowy). Zwykle to się nie zdarza.
"orientation"

Zmiana orientacji ekranu, na przykład zmiana orientacji urządzenia przez użytkownika.

Uwaga: jeśli Twoja aplikacja jest kierowana w Androidzie 3.2 (poziom interfejsu API 13) lub nowszym Konfiguracje "screenLayout" i "screenSize", ponieważ układ ekranu a rozmiar ekranu może się zmienić, gdy przełącza się między pionową i poziomą orientacją.

"screenLayout" zmiany w układzie ekranu, na przykład po aktywowaniu innego wyświetlacza.
"screenSize"

Zmiana aktualnego dostępnego rozmiaru ekranu.

Jest to zmiana obecnie dostępnego rozmiaru w stosunku do bieżący format obrazu, który zmienia się, gdy użytkownik przełącza się między trybem poziomym i pionowej.

Dodano na poziomie interfejsu API 13.

"smallestScreenSize"

Zmiana rozmiaru ekranu.

Odzwierciedla on zmianę rozmiaru niezależnie od orientacji, więc zmienia się, gdy zmienia się rzeczywisty rozmiar ekranu, np. na wyświetlaczu zewnętrznym. Zmiana w tej konfiguracji odpowiada zmianie w smallestWidth konfiguracji.

Dodano na poziomie interfejsu API 13.

"touchscreen" Zmiana na ekranie dotykowym. Zwykle to się nie zdarza.
"uiMode" zmianę trybu interfejsu, np. moment umieszczania umieść urządzenie w biurku lub samochodowej stacji dokującej albo zmieni się tryb nocny. Więcej o różnych trybach interfejsu można znaleźć UiModeManager

Dodano na poziomie API 8.

Wszystkie te zmiany w konfiguracji mogą mieć wpływ na wartości zasobów widoczne dla aplikacji. Dlatego gdy onConfigurationChanged() zwykle trzeba ponownie wykonać tę czynność pobierz wszystkie zasoby, w tym układy widoku i elementy rysowane, aby poprawnie obsłużyć zmianę.

Uwaga: aby obsługiwać zmiany w konfiguracji związane z wieloma oknami, musisz używać zarówno "screenLayout", jak i "smallestScreenSize". Tryb wielu okien jest obsługiwany w Androidzie 7.0 (poziom interfejsu API 24) i nowszych.

android:directBootAware

Określa, czy aktywność ma stan Bezpośrednie uruchamianie – czyli czy może zostać uruchomiona, zanim użytkownik odblokuje urządzenie.

Uwaga: w trakcie Bezpośredni rozruch, aktywność w aplikacja ma dostęp wyłącznie do danych przechowywanych w pamięć chroniona na urządzeniu.

Wartość domyślna to "false".

android:documentLaunchMode
Określa sposób dodawania nowych wystąpień aktywności do zadania przy każdym jego uruchomieniu. Ten atrybut pozwala na posiadanie wielu dokumentów z tej samej aplikacji. pojawią się na ekranie Ostatnie.

Ten atrybut ma 4 wartości, które wywołują następujące efekty, gdy użytkownik otworzy dokument za pomocą aplikacji:

Wartość Opis
"intoExisting" System wyszukuje zadanie, którego atrybuty ComponentName intencji podstawowej i identyfikator URI danych pasują do zamiaru uruchomienia aplikacji. Jeśli system znajdzie takie zadanie, usunie i uruchomi się ponownie, a aktywność główna otrzyma wywołanie onNewIntent(android.content.Intent) Jeśli system nie znajdzie takiego zadania, utworzy nowe zadanie.
"always" Utworzy to nowe zadanie dla dokumentu, nawet jeśli dokument jest już otwarty. Jest to działanie takie samo jak w przypadku ustawienia FLAG_ACTIVITY_NEW_DOCUMENT i FLAG_ACTIVITY_MULTIPLE_TASK.
"none" Działanie nie powoduje utworzenia nowego zadania. Jest to wartość domyślna, która tworzy nowe zadanie tylko wtedy, gdy jest ustawiony typ FLAG_ACTIVITY_NEW_TASK. Ekran Ostatnie traktuje aktywność tak samo jak domyślnie: wyświetla jedno zadanie na uruchomioną przez aplikację, która wznawia działanie po wywołaniu ostatniej aktywności przez użytkownika.
"never" Działanie nie jest uruchamiane w nowym dokumencie, nawet jeśli intencja zawiera FLAG_ACTIVITY_NEW_DOCUMENT Ustawienie tej opcji zastępuje działanie z FLAG_ACTIVITY_NEW_DOCUMENT i flagi FLAG_ACTIVITY_MULTIPLE_TASK, jeśli któraś z nich jest ustawiona w aktywność, a na ekranie Ostatnie widoczne jest jedno zadanie dla aplikacji, które jest wznawiane od działanie ostatnio wywołane przez użytkownika.

Uwaga: w przypadku wartości innych niż "none" i "never" parametr aktywność jest zdefiniowana w funkcji launchMode="standard". Jeśli ten atrybut nie jest określony, Zajęte miejsce: documentLaunchMode="none".

android:enabled
Określ, czy system może utworzyć wystąpienie działania. Jest "true", jeśli może być, lub "false", jeśli może być. Wartość domyślna jest "true".

<application> element ma własną wartość enabled który dotyczy wszystkich komponentów aplikacji, w tym aktywności. <application> i <activity> muszą mieć wartość "true", ponieważ oba te atrybuty są domyślnie, aby system mógł utworzyć wystąpienie aktywności. Jeśli któryś jest "false", nie można go utworzyć.

android:enableOnBackInvokedCallback
Ta flaga pozwala włączyć prognozowane animacje systemowe na poziomie aktywności. To zachowanie łatwiejsza w obsłudze przejście na korzystanie z przewidywanych gestów cofania w dużych aplikacjach o dużej aktywności.

Ustawienie android:enableOnBackInvokedCallback=false wyłącza prognozowanie z powrotem animacje na poziomie aktywności lub aplikacji, w zależności od tego, gdzie ustawisz tag. i informuje system, że ma ignorować wywołania interfejsu API platformy OnBackInvokedCallback.

android:excludeFromRecents

Określa, czy zadanie zainicjowane przez to działanie jest wykluczone z Ekran Ostatnie. Oznacza to, że gdy to działanie jest głównym działaniem nowego ten atrybut określa, czy zadanie pojawi się na liście ostatnio używanych aplikacji. Jest "true", jeśli zadanie jest wykluczone z listy; "false", jeśli: jest uwzględniana. Wartością domyślną jest "false".

android:exported

Określa, czy aktywność może zostać zainicjowana przez komponenty innych komponentów aplikacje:

  • Jeśli "true", aktywność jest dostępna dla dowolnej aplikacji i można ją uruchomić nazwę zajęć.
  • Jeśli ustawiona jest wartość "false", aktywność może zostać uruchomiona tylko przez komponenty komponentu tę samą aplikację, aplikacje o tym samym identyfikatorze użytkownika lub składniki systemu z podwyższonymi uprawnieniami. Jest to wartość domyślna, gdy nie ma filtrów intencji.

Jeśli aktywność w aplikacji zawiera filtry intencji, ustaw ten element na "true", aby umożliwić uruchamianie innym aplikacjom. Jeśli na przykład aktywność jest główną aktywnością i obejmuje category android.intent.category.LAUNCHER

Jeśli ten element ma wartość "false", a aplikacja próbuje rozpocząć aktywność, system wysyła żądanie ActivityNotFoundException

Ten atrybut nie jest jedynym sposobem ograniczenia ekspozycji działania na inne aplikacji. Pozwalają też ograniczyć jednostki zewnętrzne, które może wywołać działanie. Zobacz permission .

android:finishOnTaskLaunch
Informacje o tym, czy istniejące wystąpienie aktywności zostanie wyłączone, oprócz działania roota, gdy użytkownik ponownie uruchomi swoje zadanie, wybierając je ekranu głównego. Jest "true" w przypadku wyłączonego urządzenia i "false" jeśli nie. Wartością domyślną jest "false".

Jeśli ten atrybut i allowTaskReparenting to "true", ten atrybut ma priorytet nad drugim. Przywiązanie do aktywność jest ignorowana. Działanie nie zostaje nadrzędne wobec niej, ale zostaje zniszczone.

Jeśli nie ustawiono atrybutu FLAG_ACTIVITY_RESET_TASK_IF_NEEDED, ten atrybut jest ignorowany.

android:hardwareAccelerated
Określ, czy w przypadku tej opcji włączone jest renderowanie z akceleracją sprzętową działania. "true", jeśli jest włączona, oraz "false", jeśli jest włączona. Nie. Wartością domyślną jest "false".

W Androidzie 3.0 i nowszych proces renderowania OpenGL z akceleracją sprzętową jest dostępne dla aplikacji w celu poprawy wydajności w przypadku wielu popularnych grafik 2D operacji. Gdy włączony jest mechanizm renderowania z akceleracją sprzętową, większość operacji parametry Canvas, Paint, Xfermode, ColorFilter, Shader i Aparat są akcelerowane.

Dzięki temu są płynniejsze animacje i płynniejsze przewijanie. ogólną responsywność, nawet w przypadku aplikacji, które nie korzystają bezpośrednio biblioteki OpenGL platformy. Ze względu na zwiększone zasoby wymagane do włącz akcelerację sprzętową, aplikacja zużywa więcej pamięci RAM.

Nie wszystkie operacje OpenGL 2D są przyspieszone. Jeśli włączysz za pomocą akceleracji sprzętowej, sprawdź, czy aplikacja korzystać z mechanizmu renderowania bez błędów.

android:icon

Ikona symbolizująca aktywność. Ikona jest wyświetlana użytkownikom, gdy musi pojawić się na ekranie przedstawienie działania. Na przykład ikony w przypadku działań inicjujących zadania są wyświetlane w oknie programu uruchamiającego. Ikonom często towarzyszy etykieta. informacje o etykiecie znajdziesz w atrybucie android:label.

Ten atrybut jest ustawiony jako odniesienie do zasobu rysowalnego zawierającego definicji obrazu. Jeśli nie jest ustawione, ikona określona dla aplikacji jako całości. Więcej informacji: <application> icon tego elementu.

Ikona aktywności ustawiona tutaj lub przez <application> jest też domyślną ikoną dla wszystkich filtrów intencji dla danej aktywności. Więcej informacji: Element <intent-filter> icon.

android:immersive
Określa ustawienie trybu pojemnego w bieżącej aktywności. Jeśli to "true", użytkownik ActivityInfo.flags zawsze ma Ustawiono FLAG_IMMERSIVE bit, nawet jeśli tryb pojemny zmienia się w czasie działania przy użyciu metody setImmersive().
android:label

Czytelna dla użytkownika etykieta aktywności. Etykieta jest wyświetlana na ekranie. gdy aktywność jest przedstawiana użytkownikowi. Często są wyświetlane obok z ikoną aktywności. Jeśli ten atrybut nie jest ustawiony, etykieta ustawiona dla całej aplikacji to . zobacz element <application> label.

Etykieta aktywności ustawiona tutaj lub przez <application>, jest również etykieta domyślna wszystkich filtrów intencji dla aktywności. Więcej informacji: Element <intent-filter> label.

Etykieta jest ustawiona jako odniesienie do zasobu w postaci ciągu znaków, i można go zlokalizować tak samo jak inne ciągi w interfejsie. Aby jednak zapewnić wygodę na etapie tworzenia aplikacji, można go też ustawić w postaci nieprzetworzonego ciągu znaków.

android:launchMode

Instrukcja uruchamiania aktywności. Dostępnych jest 5 trybów: które działają w połączeniu z flagami aktywności (stałe FLAG_ACTIVITY_*) w Intent obiektach, aby określić, co się stanie, gdy działanie jest wywoływane do obsłużenia intencji:

"standard"
"singleTop"
"singleTask"
"singleInstance"
"singleInstancePerTask"

Tryb domyślny to "standard".

Jak pokazano w tabeli poniżej, tryby dzielą się na 2 główne grupy: "standard" i "singleTop" aktywności po jednej stronie, "singleTask", "singleInstance" i "singleInstancePerTask" aktywności na drugim. Aktywność z Tryb uruchamiania "standard" lub "singleTop" które można utworzyć wiele razy.

Instancje mogą należeć do dowolnego zadania i można go znaleźć w dowolnym miejscu w zadaniu związanym z aktywnością. Zazwyczaj są to zostało uruchomione do zadania, startActivity(), chyba że obiekt Intent zawiera FLAG_ACTIVITY_NEW_TASK W tym przypadku wybrane jest inne zadanie. Więcej informacji: taskAffinity.

W przeciwieństwie do tego: "singleTask", "singleInstance" i Aktywności "singleInstancePerTask" działają inaczej. Element "singleInstancePerTask" znajduje się zawsze w głównej części zadania związanego z aktywnością. Ponadto urządzenie może przechowywać tylko jedno wystąpienie "singleInstance" aktywność jednocześnie, a Aktywność "singleInstancePerTask może być inicjowana wiele razy w różnych zadaniach, FLAG_ACTIVITY_MULTIPLE_TASK lub FLAG_ACTIVITY_NEW_DOCUMENT jest ustawiony.

Działanie z trybem uruchamiania "singleTask" łączy zachowania "singleInstance" i "singleInstancePerTask": działanie może być utworzone kilka razy. i można go znaleźć w dowolnym miejscu w zadaniu tego samego elementu (taskAffinity). Jednak urządzenie może uruchomić tylko jedno zadanie zlokalizowania Aktywność "singleTask" w głównej części zadania związanego z aktywnością.

Tryby "standard" i "singleTop" różnią się od siebie pod jednym względem: za każdym razem, gdy pojawia się nowa intencja użytkownika "standard" , tworzona jest nowa instancja klasy, która zareaguje na tę intencję. Każda instancja obsługuje jedną intencję. Nowe wystąpienie aktywności "singleTop" może również być utworzona do obsługi nowej intencji.

Jeśli jednak zadanie docelowe ma już wystąpienia aktywności u góry stosu, to ta instancja otrzymuje nową intencję w onNewIntent() połączenie. Nowa instancja nie zostanie utworzona. W przeciwnym razie – jeśli istniejąca instancja Aktywność "singleTop" znajduje się w zadaniu docelowym, ale nie u góry listy stosu lub znajduje się u góry stosu, ale nie w zadaniu docelowym, który został utworzony i wypchnięty na stosie.

Jeśli użytkownik porusza się do działania w bieżącym stosie, działanie jest określane przez w trybie uruchamiania aktywności rodzica. Jeśli aktywność nadrzędna ma tryb uruchamiania singleTop (lub intencja up zawiera FLAG_ACTIVITY_CLEAR_TOP), intencja nadrzędna jest przekierowywana do stosu, a jego stan jest zachowywany.

Odebrano intencję nawigacji przez onNewIntent() aktywności nadrzędnej . Jeśli aktywność rodzica ma tryb uruchamiania standard, a parametry Intencja up nie zawiera parametru FLAG_ACTIVITY_CLEAR_TOP, bieżącej aktywności ani jej element nadrzędny wyskakuje stos i tworzy się nowe wystąpienie aktywności nadrzędnej, które odbiera intencję nawigacji.

Tryb "singleInstance" różni się również od trybu "singleTask" i "singleInstancePerTask" tylko pod jednym względem: aktywność z Tryb uruchamiania "singleTask" lub "singleInstancePerTask" pozwala innym działaniom, koniecznie "standard", "singleTop" aktywności, które wchodzą w skład tego zadania.

O Z kolei aktywność "singleInstance" nie zezwala na inne które są częścią jego zadania. Musi to być jedyna aktywność w zadaniu. Jeśli rozpocznie inne działanie, zostanie ono przypisane do innego zadania, jeśli uwzględniono FLAG_ACTIVITY_NEW_TASK w zamiarze.

Przykłady zastosowań Tryb uruchamiania Wiele instancji? Komentarze
Normalne uruchomienia w przypadku większości aktywności "standard" Tak Domyślny: System zawsze tworzy nowe wystąpienie aktywności w tagu i kieruje do niego intencję.
"singleTop" Warunkowo Jeśli wystąpienie działania już istnieje u góry zadania docelowego, system kieruje intencję do tej instancji przez wywołanie metody onNewIntent(), zamiast tworzyć nowej instancji aktywności.
Specjalne wprowadzenia na rynek
(niezalecane do ogólnego użytku)
"singleTask" Warunkowo System tworzy działanie u głównego zadania nowego zadania lub znajduje aktywność w istniejącym zadaniu o tej samej zainteresowaniach. Jeśli wystąpienie działania już istnieje i znajduje się w katalogu głównym zadania, system kieruje intencję do istniejącej instancji przez wywołanie metody onNewIntent(), zamiast tworzyć nowy.
"singleInstance" Nie Tak samo jak "singleTask", z tą różnicą, że system nie uruchamia żadnych wykonywać inne działania w zadaniu zawierającym instancję. Aktywność jest zawsze jako jedynego członka grupy.
"singleInstancePerTask" Warunkowo Działanie może być uruchamiane tylko jako działanie główne zadania, działanie, które spowodowało utworzenie zadania, dlatego występuje tylko jedno wystąpienie tę aktywność w zadaniu. Działanie to można jednak utworzyć wiele razy w ramach różnych zadań.

Jak widać w poprzedniej tabeli, trybem domyślnym jest "standard" które są przydatne w większości rodzajów aktywności. "singleTop" to także typowy i przydatny tryb uruchamiania dla wielu rodzajów działań. Pozostałe tryby "singleTask", "singleInstance" i "singleInstancePerTask"nieodpowiednie w większości aplikacji. W efekcie powstaje model interakcji, który jest prawdopodobnie nieznany użytkowników i bardzo różni się od większości innych aplikacji.

Niezależnie od wybranego trybu uruchamiania warto przetestować łatwość obsługi aktywności w momencie uruchomienia i po powrocie do niego za pomocą przycisku Wstecz.

Więcej informacji o trybach uruchamiania i ich interakcjach z aplikacją Intent flagi, patrz Lista zadań a stos tylny.

android:lockTaskMode
Określa, jak system prezentuje tę aktywność, gdy urządzenie działa Zablokuj tryb zadań.

Android pozwala uruchamiać zadania w bardzo realistyczny sposób, nazywany trybem blokady zadań. Gdy system działa w trybie blokady zadań, użytkownicy urządzeń zwykle nie widzą powiadomień, nie mają dostępu do aplikacji spoza listy dozwolonych, lub wrócić do ekranu głównego, chyba że aplikacja Home znajduje się na liście dozwolonych.

Tylko aplikacje, które są umieszczone na liście dozwolonych przez kontroler zasad urządzeń (DPC) mogą być uruchamiane, gdy system jest w trybie blokady zadań. Systemowy i aplikacje z podwyższonymi uprawnieniami, mogą jednak działać w trybie zadań blokady i nie znajdować się na liście dozwolonych.

Wartość może być dowolną z tych wartości R.attr.lockTaskMode – wartości ciągu znaków:

Wartość Opis
"normal" Wartość domyślna. Jest to wartość domyślna. Zadania nie uruchamiają się w trybie blokady zadań, ale mogą zostaną tam umieszczone przez wywołanie startLockTask()
"never"

Zadania nie uruchamiają się w trybie lockTask, a użytkownik urządzenia nie może ich przypiąć w Ekran ostatnich.

Uwaga: ten tryb jest dostępny tylko dla aplikacji systemowych i aplikacji z podwyższonymi uprawnieniami. Aplikacje bez uprawnień o tej wartości są traktowane jako normal.

"if_whitelisted" Jeśli DPC autoryzuje ten pakiet za pomocą DevicePolicyManager.setLockTaskPackages() jest taki sam jak tryb always, z tym że aktywność musi wywoływać metodę stopLockTask() przed może zostać ukończone, jeśli jest to ostatnie zablokowane zadanie. Jeśli DPC nie autoryzuje tego pakietu, tryb jest taki sam jak normal.
"always"

Zadania z wykorzystaniem tego działania są zawsze uruchamiane w trybie zadań blokady. Jeśli system jest już Zablokuj tryb zadań po uruchomieniu tego zadania, a nowe zadanie zostanie uruchomione nad bieżącym zadaniem. Zadania uruchamiane w tym trybie mogą wyjść z trybu blokady, wykonując połączenie finish()

Uwaga: ten tryb jest dostępny tylko dla aplikacji systemowych i aplikacji z podwyższonymi uprawnieniami. Aplikacje bez uprawnień o tej wartości są traktowane jako normal.

Ten atrybut został wprowadzony na poziomie interfejsu API 23.

android:maxRecents
Maksymalna liczba zadań związanych z tą aktywnością w Ekran Ostatnie. Gdy liczba wpisów zostanie osiągnięta, system usunie najwcześniejszą liczbę wpisów, używanej instancji na ekranie Ostatnie. Prawidłowe wartości to liczby całkowite z zakresu od 1 do 50 lub od 1 do 25 w przypadku urządzeń z małą ilością pamięci. 0 jest nieprawidłowe. Wartością domyślną jest 16.
android:maxAspectRatio

Maksymalny format obrazu obsługiwany przez aktywność. Jeśli aplikacja działa na urządzeniach o szerszym formacie obrazu system automatycznie dodaje do aplikacji poziome pasy, pozostawiania nieużywanych części ekranu, dzięki czemu aplikacja może działać z określonym maksymalnym współczynnikiem proporcji;

Maksymalny współczynnik proporcji jest wyrażony jako ułamek dziesiętny ilorazu dłuższego obrazu podzielony przez jego krótszy wymiar. Jeśli na przykład maksymalny współczynnik proporcji to 7:3, Ustawia wartość tego atrybutu na 2,33.

W przypadku urządzeń do noszenia wartość tego atrybutu musi wynosić 1, 33 lub więcej. Na urządzeniach do noszenia ta wartość musi wynosić 1, 0 lub nowsza. W przeciwnym razie system zignoruje ustaw wartość.

Uwaga: ten atrybut jest ignorowany, jeśli aktywność Parametr resizeableActivity ma wartość Prawda, ponieważ oznacza to Twoją aktywność obsługuje dowolne rozmiary.

Więcej informacji o tym atrybucie znajdziesz tutaj: Zadeklaruj maksymalny format obrazu.

android:multiprocess
Określenie, czy wystąpienie działania może zostać uruchomione w procesie komponentu. od nich. Jest to "true", jeśli może być, lub "false", jeśli może być. Wartością domyślną jest "false".

Normalnie nowe wystąpienie działania jest uruchamiane w trakcie procesu aplikacji, w której ją zdefiniowano, więc wszystkie jej wystąpienia są uruchamiane proces tworzenia konta. Jeśli jednak ta flaga jest ustawiona na "true", instancje aktywność może być uruchomiona w wielu procesach, co pozwala systemowi na tworzenie instancji niezależnie od miejsca, w którym są używane, odpowiednie uprawnienia pozwalają na to. nigdy nie była potrzebna ani pożądana.

android:name
Nazwa klasy, która implementuje aktywność, czyli podklasa Activity Wartość atrybutu to zwykle jest w pełni kwalifikowany nazwa klasy, na przykład "com.example.project.ExtracurricularActivity". W skrócie: jeśli pierwszym znakiem nazwy jest kropka, na przykład ".ExtracurricularActivity", jest dołączony do przestrzeń nazw określona w build.gradle.

Po opublikowaniu aplikacji nie zmień tę nazwę, chyba że ustawisz android:exported="false". Nie ma wartości domyślnej. Musisz podać nazwę.

android:noHistory
Określenie, czy aktywność zostanie usunięta ze stosu aktywności zakończono, wywołując jego finish() , gdy użytkownik opuści daną stronę i przestanie z niej korzystać. widoczne na ekranie. Jeśli wszystko jest gotowe, ma wartość "true". "false", jeśli nie. Wartością domyślną jest "false".

Wartość "true" oznacza, że aktywność nie powoduje utraty ślad historyczny. nie pozostaje na stosie aktywności danego zadania, aby użytkownik nie mógł do niej wrócić. W tym przypadku Funkcja onActivityResult() nigdy nie jest wywoływana, jeśli: rozpocząć inną aktywność związaną z wynikiem tej aktywności.

Ten atrybut został wprowadzony na poziomie interfejsu API 3.

android:parentActivityName
Nazwa klasy logicznego elementu nadrzędnego aktywności. Podana tutaj nazwa musi być zgodna z klasą nazwa nadana odpowiedniemu elementowi <activity> Atrybut android:name.

System odczytuje ten atrybut, aby określić działanie, które ma zostać uruchomione, użytkownik klika przycisk w górę na pasku działań. System może też użyć tych informacji do: syntetyzować wsteczny stos aktywności za pomocą funkcji TaskStackBuilder.

Aby obsługiwać poziomy interfejsu API 4–16, możesz również zadeklarować aktywność nadrzędną za pomocą elementu <meta-data>, który określa wartość "android.support.PARENT_ACTIVITY":

<activity
    android:name="com.example.app.ChildActivity"
    android:label="@string/title_child_activity"
    android:parentActivityName="com.example.app.MainActivity" >
    <!-- Parent activity meta-data to support API level 4+ -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.app.MainActivity" />
</activity>

Aby dowiedzieć się więcej o deklarowaniu aktywności rodzica na potrzeby nawigacji w górę, przeczytaj artykuł Umiejętność Nawigacja

Ten atrybut został wprowadzony na poziomie interfejsu API 16.

android:persistableMode

Definiuje sposób zachowywania wystąpienia działania w elemencie zawierającym i ponownych uruchomień na różnych urządzeniach.

Jeśli główne działanie zadania ustawia wartość tego atrybutu na persistRootOnly, zostanie zachowana tylko aktywność główna. W przeciwnym razie działania, które znajdują się wyżej w zadaniu stos są badane; dowolne z tych działań, które ustawiają wartość tego atrybutu na persistAcrossReboots są zachowywane.

Jeśli używasz tego atrybutu, musisz ustawić jego wartość na jedną z :

Wartość Opis
persistRootOnly

Wartość domyślna. Po ponownym uruchomieniu systemu zadanie związane z aktywnością zostanie ale używana jest tylko intencja uruchomienia aktywności głównej.

Gdy intencja uruchamiania aplikacji wczytuje aktywność główną aplikacji, tag aktywność nie otrzymuje obiektu PersistableBundle. Dlatego nie używaj onSaveInstanceState() w celu zachowania stanu aktywności głównej aplikacji na urządzeniu zrestartować.

Uwaga: ta wartość atrybutu wpływa na parametr tylko wtedy, gdy jest ono ustawione w aktywności głównej aplikacji.

persistAcrossReboots

Stan tej aktywności wraz z informacjami o stanie każdej z nich jest zachowywany. aktywność wyżej wstecz stack, który ma własny atrybut persistableMode ustawiony na persistAcrossReboots Jeśli w aktywności nie ma atrybut persistableMode ustawiony na persistAcrossReboots lub jeśli został uruchomiony za pomocą Intent.FLAG_ACTIVITY_NEW_DOCUMENT flagę, tę aktywność i wszystkie aktywności wyżej, nie są zachowywane.

Gdy intencja wczytuje aktywność, której persistableMode ma w Twojej aplikacji wartość persistAcrossReboots, atrybut działanie odbiera obiekt PersistableBundle w onCreate(). Dzięki temu możesz korzystać z onSaveInstanceState() w celu zachowania stanu aktywności na ponownym uruchomieniu urządzenia, dopóki jest ono Atrybut persistableMode ma wartość persistAcrossReboots

Uwaga: ta wartość atrybutu wpływa na parametr nawet jeśli ustawiono je w innej aktywności niż katalog główny aplikacji działania.

persistNever

Stan aktywności nie jest zachowywany.

Uwaga: ta wartość atrybutu wpływa na parametr tylko wtedy, gdy jest ono ustawione w aktywności głównej aplikacji.

Ten atrybut został wprowadzony na poziomie interfejsu API 21.

android:permission
Nazwa uprawnienia, które musi mieć klient, aby uruchomić działanie lub w inny sposób umożliwić mu reagowanie na intencję. Jeśli rozmówca startActivity() lub startActivityForResult() nie otrzyma określonego uprawnienia, intencja nie zostanie dostarczona do działania.

Jeśli ten atrybut nie jest skonfigurowany, uprawnienia określone przez <application> elementu permission ma zastosowanie do aktywności. Jeśli żaden z tych atrybutów nie jest ustawiony, aktywność nie jest chroniona przez uprawnienia.

Więcej informacji o uprawnieniach znajdziesz tutaj: Uprawnienia sekcji omówienia manifestu aplikacji Wskazówki dotyczące bezpieczeństwa

android:process

Nazwa procesu, w którym działa aktywność. Normalnie, wszystkie składniki jest uruchamiana w domyślnej nazwie procesu utworzonej dla aplikacji i nie jest muszą używać tego atrybutu. Jeśli to konieczne, możesz zastąpić proces domyślny nazwę z tym atrybutem, dzięki czemu możesz udostępniać wiele procesów.

Jeśli nazwa przypisana do tego atrybutu zaczyna się od dwukropka (:), nowy atrybut prywatny do aplikacji i powstaje wtedy, gdy jest potrzebny, aktywność w tym procesie.

Jeśli nazwa procesu zaczyna się od małej litery, aktywność jest uruchamiana w globalnym procesie dotyczącym tej nazwy, o ile ma do tego uprawnienia. Umożliwia to komponentom w różnych aplikacjach współużytkowanie procesu, co zmniejsza wykorzystanie zasobów.

Element <application> process może ustawić inną domyślną nazwę procesu dla wszystkich komponentów.

android:relinquishTaskIdentity

Określa, czy aktywność przekazuje swoje identyfikatory zadań do aktywności nad nią w stosu zadań. Zadanie, którego aktywność główna ma ten atrybut ustawiony na "true", zastępuje podstawowe zadanie Intent z następnym działaniem w zadaniu.

Jeśli następne działanie również ma ten atrybut do wartości "true", zwraca podstawową wartość Intent dla każdej aktywności uruchomionej w tym samym zadanie. Procedura jest powtarzana dla każdej aktywności, dopóki nie zostanie napotkane działanie, które ma ustawiony ten atrybut do "false". Wartością domyślną jest "false".

Ten atrybut ustawiony na "true" zezwala też na użycie przez aktywność atrybutu ActivityManager.TaskDescription, aby zmienić etykiety, kolory i ikonach na ekranie Ostatnie.

android:requireContentUriPermissionFromCaller

Określa uprawnienia niezbędne do uruchamiania tej aktywności w przypadku pomyślnego zaliczenia identyfikatory URI treści. Wartość domyślna to none, co oznacza brak wymagane uprawnienia. Ustawienie tego atrybutu ogranicza aktywność na podstawie uprawnień wywołującego. Jeśli wywołujący nie ma wymagane uprawnienia, rozpoczęcie aktywności będzie odrzucane przez SecurityException .

Pamiętaj, że egzekwowanie działa w przypadku identyfikatorów URI treści wewnątrz Intent.getData() Intent.EXTRA_STREAM, oraz Intent.getClipData().

Może to być wartość ciągu znaków, w formacie „\\;”. aby zmienić znaczenie znaków, takich jak „\\n” lub „\\uxxxx” dla znaku Unicode;

Musi to być jedna z podanych stałych wartości.

Stała Wartość Opis
brak 0 Domyślnie nie są wymagane żadne konkretne uprawnienia.
czytaj 1 Wymusza uprawnienia wywołującego uprawnienia do odczytu przekazywanych identyfikatorów URI treści.
odczyti zapis 4 Wymusza wywołujący, aby miał dostęp zarówno do odczytu, jak i do zapisu w przekazywanych identyfikatorach URI treści.
ReadOrWrite (odczyt/zapis) 3 Wymusza na podstawie wywołującego uprawnienia dostępu do odczytu lub zapisu w przekazywanych identyfikatorach URI treści.
zapis 2 Wymusza na podstawie wywołującego uprawnienia dostępu do zapisu przekazywanych identyfikatorów URI treści.
android:resizeableActivity

Określa, czy aplikacja obsługuje tryb wielu okien. Ty można ustawić ten atrybut w <activity> albo <application>. .

Jeśli ustawisz ten atrybut na wartość "true", użytkownik będzie mógł uruchamiać aktywność w w trybie podzielonego ekranu i trybie dowolnym. Jeśli ustawisz atrybut na wartość "false", aplikacja nie może zostać przetestowana ani zoptymalizowana pod kątem środowiska wielu okien. System może przejdź do trybu wielu okien z zastosowanym trybem zgodności.

Ustawienie tego atrybutu na wartość "false" nie gwarantuje, że nie ma innych aplikacji w trybie wielu okien widocznych na ekranie, np. w obrazie w obrazie. na innych ekranach. Dlatego ustawienie tej flagi nie oznacza, że aplikacja ma wyłączny dostęp do zasobów.

Jeśli aplikacja jest kierowana na interfejs API na poziomie 24 lub wyższym i nie określisz wartości domyślna wartość tego atrybutu to "true".

Jeśli aplikacja jest kierowana na interfejs API na poziomie 31 lub wyższym, ten atrybut działa inaczej w przypadku małych i dużych rozmiarów ekrany:

  • Duże ekrany (sw >= 600 dp): wszystkie aplikacje obsługują tryb wielu okien. Atrybut wskazuje Informacje o tym, czy można zmienić rozmiar aplikacji oraz czy obsługuje tryb wielu okien. Jeśli resizeableActivity="false", w razie potrzeby aplikacja zostanie przełączona w tryb zgodności aby dostosować je do wymiarów wyświetlania.
  • Małe ekrany (sw < 600 dp): jeśli resizeableActivity="true" i wartość minimalna szerokości i minimalnej wysokości aktywności mieszczą się w wymaganiach dotyczących wielu okien. obsługuje tryb wielu okien. Jeśli resizeableActivity="false", aplikacja nie obsługują tryb wielu okien niezależnie od minimalnej szerokości i wysokości aktywności.

Uwaga: producenci urządzeń mogą zastąpić poziom interfejsu API 31. zachowanie użytkownika.

Ten atrybut został dodany na poziomie interfejsu API 24.

Uwaga: główna wartość aktywności zadania jest stosowana do wszystkich dodatkowych działań uruchomionych w zadaniu. Oznacza to, że jeśli główne działanie którego rozmiar można zmienić, system traktuje wszystkie pozostałe działania z możliwością zmiany rozmiaru. Jeśli nie można zmienić rozmiaru głównej aktywności, aktywności w zadaniu nie można zmienić.

android:screenOrientation

Żądana orientacja działania.

Gdy działanie wypełnia cały ekran, żądana orientacja działa jak sugestia zmienić orientację na tym ekranie, aby pasowała do żądanej wartości. Może to spowodować, że: orientacja różni się od fizycznej orientacji ekranu w przestrzeni, co wymaga użytkownik musi obrócić urządzenie, aby dalej korzystać z aplikacji. Na Androidzie 12 (poziom interfejsu API) 31) i nowszych, producenci mogą konfigurować poszczególne urządzenia. ekranów (takich jak ekran urządzenia składanego tabletu), aby zignorować tę sugestię. wymusza dodanie czarnych pasów do aktywności zgodnie z orientacją urządzenia użytkownika wybraną przez użytkownika. Ten powoduje dopasowanie orientacji aktywności do żądanej wartości bez konieczności fizycznie obracać urządzenie.

W trybie wielu okien żądana orientacja nie stanowi sugestii dla całego widoku orientacji ekranu. Jeśli aktywność to letterboxed, wymagane, ma wpływ na poziome pasy zastosowane w działaniu.

Wartość może być dowolnym z tych ciągów:

"unspecified" Wartość domyślna. System wybiera orientację. Zasady, których zastosowania, w związku z czym wybory dokonywane w konkretnych kontekstach mogą się różnić między urządzeniami.
"behind" Taka sama orientacja jak aktywność, która znajduje się tuż pod nią, stosu aktywności.
"landscape" Orientacja pozioma (wyświetlacz jest szerszy niż wysoki).
"portrait" Orientacja pionowa (wyświetlacz jest wyższy niż szerszy).
"reverseLandscape" Orientacja pozioma jest przeciwna do normalnego poziomego. Dodano na poziomie API 9.
"reversePortrait" Orientacja pionowa jest w kierunku przeciwnym do normalnej orientacji pionowej. Dodano na poziomie API 9.
"sensorLandscape" Orientacja pozioma, ale w zależności od urządzenia może być normalna lub odwrócona. . Czujnik jest używany nawet wtedy, gdy użytkownik zablokował obrót oparty na czujniku. Dodano na poziomie API 9.
"sensorPortrait" orientacja pionowa, ale w zależności od urządzenia może być normalna lub odwrócona. . Czujnik jest używany nawet wtedy, gdy użytkownik zablokował obrót oparty na czujniku. Jednak w zależności od konfiguracji urządzenia, obrót do góry nogami może być niedozwolony. Dodano na poziomie API 9.
"userLandscape" Orientacja pozioma, ale w zależności od urządzenia może być normalna lub odwrócona. i preferencji użytkownika. Dodano na poziomie API 18.
"userPortrait" orientacja pionowa, ale w zależności od urządzenia może być normalna lub odwrócona. i preferencji użytkownika. Zależnie od konfiguracji urządzenia, wyświetlanie do góry nogami może być niedozwolona. Dodano na poziomie API 18.
"sensor" Orientację urządzenia określa czujnik orientacji urządzenia. Orientacja parametru zależy od tego, jak użytkownik trzyma urządzenie. Zmienia się, gdy użytkownik obróci urządzenia. Niektóre urządzenia domyślnie nie obracają się jednak do wszystkich czterech możliwych orientacji. Do we wszystkich czterech orientacjach, należy użyć funkcji "fullSensor". Czujnik jest używany nawet wtedy, gdy użytkownik zablokowany obrót oparty na czujniku.
"fullSensor" Czujnik orientacji urządzenia określa orientację dla każdej z 4 orientacji. Ta funkcja jest podobna do "sensor", z tą różnicą, że możesz użyć dowolnej z 4 możliwych orientacji ekranu. bez względu na to, co normalnie obsługuje urządzenie. Na przykład niektóre urządzenia zwykle nie używają odwrotnego kierunku do orientacji pionowej lub odwróconej, ale umożliwia to obsługę tych orientacji. Dodano na poziomie API 9.
"nosensor" Orientacja jest określana bez korzystania z czujnika orientacji fizycznej. Czujnik jest ignorowany, więc ekran nie obraca się w zależności od tego, jak użytkownik porusza urządzenie.
"user" Bieżąca preferowana orientacja użytkownika.
"fullUser" Jeśli użytkownik zablokował obrót oparty na czujniku, działa to tak samo jak w przypadku ustawienia user, w przeciwnym razie działa tak samo jak fullSensor i pozwala na dowolne z 4 możliwych orientacji ekranu. Dodano na poziomie API 18.
"locked" Blokuje bieżącą obrót orientacji (bez względu na to, co jest). Dodano na poziomie API 18.

Uwaga: gdy zadeklarujesz jedną z wartości orientacji poziomej lub pionowej, jest uważany za ciężki wymóg dotyczący orientacji, w której odbywa się aktywność. Zadeklarowana wartość umożliwia filtrowanie według usług takich jak Google Play, więc aplikacja jest są dostępne wyłącznie na urządzeniach obsługujących orientację wymaganą przez Twoje aktywności. Dla: na przykład jeśli zadeklarujesz "landscape", "reverseLandscape" lub "sensorLandscape", aplikacja będzie dostępna tylko na urządzeniach obsługujących w orientacji poziomej.

Wyraźnie zadeklaruj, że aplikacja wymaga orientacji pionowej lub poziomej w <uses-feature> Element, np. <uses-feature android:name="android.hardware.screen.portrait"/>. To jest sposób filtrowania udostępnianych przez Google Play i inne usługi, które je obsługują, a sama platforma nie określ, czy aplikację można zainstalować, gdy urządzenie obsługuje tylko określone orientacje.

android:showForAllUsers

Określa, czy aktywność jest wyświetlana, gdy bieżący użytkownik urządzenia jest inaczej niż użytkownik, który uruchomił aktywność. Możesz ustawić ten atrybut na wartość literałową, taką jak "true" lub "false", lub możesz ustawić atrybut na zasób lub atrybut motywu zawierający wartość logiczna.

Ten atrybut został dodany na poziomie interfejsu API 23.

android:stateNotNeeded
Czy aktywność można zakończyć i ponownie uruchomić bez zapisywania stanu. Jeśli można ponownie uruchomić urządzenie, wynosi "true" bez odniesienia do poprzedniego stanu oraz "false", jeśli jest poprzedni . Wartością domyślną jest "false".

Normalnie, zanim działanie zostanie tymczasowo wyłączone w celu zaoszczędzenia zasobów, onSaveInstanceState() . Ta metoda zapisuje bieżący stan aktywności w pliku Bundle obiekt, który jest następnie przekazywany do onCreate(), gdy aktywność Urządzenie zostało uruchomione ponownie. Jeśli ten atrybut ma wartość "true", onSaveInstanceState() może nie zostać wywołany, a onCreate() jest przekazany null zamiast Bundle, ponieważ jest to miejsce, w którym jest zostanie uruchomiona po raz pierwszy.

Ustawienie "true" oznacza, że aktywność można wznowić bez i stanie się niezmienionym. Na przykład aktywność, która wyświetla Ekran główny korzysta z tego ustawienia, aby mieć pewność, że nie zostanie usunięty, jeśli go które z jakiegoś powodu ulegają awarii.

android:supportsPictureInPicture

Określa, czy aktywność obsługuje obraz w obrazie.

android:taskAffinity

Zadanie, z którym aktywność jest powiązana. Zajęcia z: te same koligacje koncepcyjnie należą do tego samego zadania, do tego samego „application” z perspektywy użytkownika. Koligacja z zadaniem zależy od koligacji jej głównej aktywności.

Koligacja określa 2 rzeczy: zadanie, którego aktywność jest wskazywana ponownie jako rodzic do (zobacz allowTaskReparenting ) oraz zadanie, w którym znajduje się aktywność po jej uruchomieniu. dzięki FLAG_ACTIVITY_NEW_TASK flaga.

Domyślnie wszystkie działania w aplikacji mają taką samą koligację. Ty można ten atrybut grupować w różny sposób, a nawet umieszczać określonych w różnych aplikacjach w ramach tego samego zadania. Do wskazać, że aktywność nie ma koligacji do żadnego zadania, należy ustawić na pusty ciąg znaków.

Jeśli ten atrybut nie jest ustawiony, aktywność dziedziczy zestaw koligacji dla danej aplikacji. Zobacz <application> elementu taskAffinity . Nazwa domyślnej koligacji aplikacji to przestrzeń nazw ustawionej w parametrze build.gradle.

android:theme
Odniesienie do zasobu stylu określającego ogólny motyw aktywności. Spowoduje to automatyczne ustawienie kontekstu aktywności tak, aby jej używał theme, a może też powoduje „uruchamianie” animacje przed uruchomieniem, aby lepiej jak ona wygląda.

Jeśli ten atrybut nie jest skonfigurowany, aktywność odziedziczy motyw ustawiony dla atrybutu z całej aplikacji, od <application> elementu theme . Jeśli ten atrybut również nie jest skonfigurowany, używany jest domyślny motyw systemowy. Więcej Więcej informacji: Style i motywy.

android:uiOptions

Dodatkowe opcje interfejsu użytkownika aktywności. Musi to być jedna z następujących wartości.

WartośćOpis
"none"Bez dodatkowych opcji interfejsu. Jest to ustawienie domyślne.
"splitActionBarWhenNarrow"Dodaje bar o aby wyświetlić działania na pasku aplikacji, nazywanym też paska działań, gdy ograniczone dla przestrzeni w poziomie, na przykład w trybie pionowym w telefonie. Zamiast małego jest liczba działań wyświetlanych na pasku aplikacji u góry ekranu, podziel na górną sekcję nawigacji i dolny pasek działań. Oznacza to rozsądny jest miejsce na nie tylko działania, ale też nawigację i tytuł. elementów u góry. Pozycje menu nie są podzielone na dwa słupki. Zawsze są wyświetlane razem.

Więcej informacji o pasku aplikacji znajdziesz w artykule Dodawanie paska aplikacji.

Ten atrybut został dodany na poziomie interfejsu API 14.

android:windowSoftInputMode
Jak główne okno aktywności wchodzi w interakcję z oknem zawierającym ekranową klawiaturę programową. Ustawienie tego atrybutu ma wpływ na dwa
  • Określa, czy klawiatura ekranowa jest ukryta lub widoczna, gdy aktywność staje się na skupienie uwagi użytkownika.
  • Określa, czy główne okno aktywności to pomniejszony, aby zwolnić miejsce na klawiaturę programową lub jej zawartość przesuń, aby pokazać bieżący fokus, gdy część okna jest zakryta przez klawiaturę programową.

Ustawieniem musi być jedna z wartości wymienionych w poniższej tabeli lub kombinacja 1 wartości "state..." i 1 "adjust..." . Ustawianie wielu wartości w dowolnej grupie, np. kilku wartości "state..." wartości, zawiera niezdefiniowane wyniki. Poszczególne wartości są rozdzielone pionową kreską (|), jak w tym przykładzie:

<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >

Wartości ustawione tutaj (inne niż "stateUnspecified" i "adjustUnspecified") zastąpią wartości ustawione w motywie.

Wartość Opis
"stateUnspecified" Określa, czy klawiatura ekranowa jest ukryta czy widoczna nie jest określony. System wybiera odpowiedni stan lub zależy od ustawienia w motywie.

Jest to domyślne ustawienie działania klawiatury programowej.

"stateUnchanged" Klawiatura programowa jest zachowywana w ostatnim stanie, widoczne lub ukryte, gdy aktywność pojawi się na pierwszym planie.
"stateHidden" Klawiatura programowa jest ukryta, gdy użytkownik wybierze działanie, czyli jest, gdy użytkownik świadomie przejdzie do co zrobić, gdy rezygnujesz z aktywności.
"stateAlwaysHidden" Klawiatura programowa jest zawsze ukryta w głównym oknie aktywności ma zaznaczone pole wprowadzania.
"stateVisible" Klawiatura programowa jest widoczna, gdy użytkownik wybierze czyli gdy użytkownik świadomie przejdzie do przodu do działania, zamiast do niego wrócić podczas opuszczania kolejnego działania.
"stateAlwaysVisible" Klawiatura programowa jest widoczna, gdy okno zostanie zaznaczone.
"adjustUnspecified" Określa, czy rozmiar głównego okna aktywności jest zmieniany aby zrobić miejsce na klawiaturę programową lub treść przesunięcia okna tak, aby bieżący fokus był widoczny na ekranie, nie jest określony. System automatycznie wybiera jeden z tych trybów w zależności od tego, czy zawartość okna ma jakieś widoki układu, mogą przewijać treści. Jeśli istnieje taki widok, okno zmienia rozmiar, przy założeniu, że przewijanie może spowodować widoczna na mniejszym obszarze zawartości okna.

Jest to domyślne ustawienie zachowania okna głównego.

"adjustResize" Rozmiar głównego okna aktywności jest zawsze zmieniany, aby zrobić miejsce na korzystanie z klawiatury programowej na ekranie.
"adjustPan" Główne okno aktywności nie jest zmieniane, aby zrobić miejsce na klawiatury. Zawartość okna jest natomiast automatycznie przesuń tak, aby obecny fokus nie był zasłonięty przez klawiaturę, a użytkownicy zawsze widzą to, co wpisują. Jest to zwykle mniej jest bardziej pożądane niż zmiana rozmiaru, ponieważ użytkownik może być zmuszony zamknąć klawiatura, aby dotrzeć do zasłoniętych części okna i wchodzić z nimi w interakcję.

Ten atrybut został wprowadzony na poziomie interfejsu API 3.

wprowadzone w:
Poziom API 1 dla wszystkich atrybutów oprócz noHistory i windowSoftInputMode, które zostały dodane w interfejsie API poziom 3.
zobacz też:
<application>
<activity-alias>