Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
cú pháp:
<activity android:allowEmbedded=["true" | "false"]
          android:allowTaskReparenting=["true" | "false"]
          android:alwaysRetainTaskState=["true" | "false"]
          android:autoRemoveFromRecents=["true" | "false"]
          android:banner="drawable resource"
          android:clearTaskOnLaunch=["true" | "false"]
          android:colorMode=[ "hdr" | "wideColorGamut"]
          android:configChanges=["mcc", "mnc", "locale",
                                 "touchscreen", "keyboard", "keyboardHidden",
                                 "navigation", "screenLayout", "fontScale",
                                 "uiMode", "orientation", "density",
                                 "screenSize", "smallestScreenSize"]
          android:directBootAware=["true" | "false"]
          android:documentLaunchMode=["intoExisting" | "always" |
                                  "none" | "never"]
          android:enabled=["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: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>
có trong:
<application>
có thể chứa:
<intent-filter>
<meta-data>
<layout>
mô tả:
Khai báo một hoạt động (một lớp con Activity) triển khai một phần giao diện người dùng trực quan của ứng dụng. Tất cả hoạt động phải được đại diện bằng phần tử <activity> trong tệp kê khai. Hệ thống sẽ không nhìn thấy và không bao giờ chạy các dịch vụ chưa được khai báo.
thuộc tính:
android:allowEmbedded
Cho biết hoạt động đó có thể được chạy dưới dạng phần tử con (child) được nhúng của hoạt động khác. Cụ thể là trong trường hợp phần tử con tồn tại trong vùng chứa, chẳng hạn như Màn hình thuộc sở hữu của một hoạt động khác. Ví dụ: các hoạt động được dùng cho thông báo tuỳ chỉnh trên Wear phải khai báo thuộc tính này để Wear có thể hiển thị hoạt động này trong dòng ngữ cảnh (context stream) của nó; dòng này nằm trong một quy trình khác.

Giá trị mặc định của thuộc tính này là false.

android:allowTaskReparenting
Liệu hoạt động có thể di chuyển từ nhiệm vụ bắt đầu sang nhiệm vụ tương đồng (affinity) hay không khi nhiệm vụ đó được đưa lên trước - "true" nếu có thể di chuyển, và "false" nếu chúng phải ở lại nhiệm vụ bắt đầu.

Nếu bạn không đặt thuộc tính này, thì giá trị do thuộc tính allowTaskReparenting tương ứng của phần tử <application> thiết lập sẽ áp dụng cho hoạt động. Giá trị mặc định là "false".

Thông thường, khi một hoạt động bắt đầu, nó sẽ được liên kết với nhiệm vụ của hoạt động đã khởi đầu nó và sẽ ở nguyên đó trong suốt thời gian thực hiện hoạt động. Bạn có thể sử dụng thuộc tính này để buộc nó phải được gán lại cho nhiệm vụ mà nó có đối tượng tương đồng khi nhiệm vụ hiện tại không còn được hiển thị nữa. Thông thường, nó dùng để khiến các hoạt động của một ứng dụng chuyển sang tác vụ chính được liên kết với ứng dụng đó.

Ví dụ, nếu một thông báo qua email chứa đường liên kết đến một trang web, thì việc nhấp vào đường liên kết sẽ dẫn đến một hoạt động có thể hiển thị trang web đó. Hoạt động đó được xác định bởi ứng dụng trình duyệt, nhưng được khởi chạy như một phần của tác vụ e-mail. Nếu nó được gán lại cho tác vụ trình duyệt, nó sẽ được hiển thị khi trình duyệt tiếp theo xuất hiện phía trước và sẽ không xuất hiện khi tác vụ e-mail một lần nữa chuyển tiếp về phía trước.

Đối tượng tương đồng (affinity) của một hoạt động được xác định bằng thuộc tính taskAffinity. Đối tượng tương đồng của một tác vụ được xác định bằng cách đọc đối tượng tương đồng của hoạt động gốc. Do đó, theo định nghĩa, hoạt động gốc luôn nằm trong tác vụ có cùng đối tượng tương đồng. Do các hoạt động với chế độ khởi chạy "singleTask " hoặc "singleInstance" chỉ có thể nằm trong thư mục gốc của một tác vụ, nên việc gán lại bị giới hạn ở chế độ "standard" và "singleTop". (Xem thêm thuộc tính launchMode.)

android:alwaysRetainTaskState
Liệu trạng thái của tác vụ mà hoạt động nằm trong đó có luôn được hệ thống duy trì hay không - là "true" nếu có, và là "false" nếu hệ thống được phép đặt lại tác vụ về trạng thái ban đầu trong một số tình huống nhất định. Giá trị mặc định là "false". Thuộc tính này chỉ có ý nghĩa đối với hoạt động gốc của một tác vụ; tất cả hoạt động khác sẽ bị bỏ qua.

Thông thường, hệ thống sẽ xoá một tác vụ (xoá mọi hoạt động khỏi ngăn xếp bên trên hoạt động gốc) trong một số trường hợp khi người dùng chọn lại tác vụ đó trên màn hình chính. Thông thường, điều này được thực hiện nếu người dùng không truy cập tác vụ trong một khoảng thời gian nhất định, chẳng hạn như 30 phút.

Tuy nhiên, khi thuộc tính này là "true", người dùng sẽ luôn quay lại tác vụ ở trạng thái cuối cùng, bất kể họ truy cập vào cách nào. Điều này hữu ích, chẳng hạn như trong một ứng dụng như trình duyệt web, nơi có rất nhiều trạng thái (chẳng hạn như nhiều thẻ đang mở) mà người dùng không muốn mất.

android:autoRemoveFromRecents
Liệu tác vụ do các hoạt động khởi chạy với thuộc tính này có vẫn ở trên màn hình tổng quan hay không cho đến khi hoạt động gần nhất trong tác vụ đó hoàn tất. Nếu là true, tác vụ sẽ tự động bị xoá khỏi màn hình tổng quan. Thao tác này sẽ ghi đè cách người dùng sử dụngFLAG_ACTIVITY_RETAIN_IN_RECENTS. Đó phải là một giá trị boolean, "true" hoặc "false".
android:banner
Một tài nguyên có thể vẽ cung cấp biểu ngữ đồ hoạ mở rộng cho mục được liên kết. Sử dụng với thẻ <activity> để cung cấp biểu ngữ mặc định cho hoạt động cụ thể hoặc với thẻ <application> để cung cấp biểu ngữ cho tất cả các hoạt động của ứng dụng.

Hệ thống này sử dụng biểu ngữ để biểu thị một ứng dụng trên màn hình chính của Android TV. Vì chỉ hiển thị biểu ngữ trên màn hình chính, nên biểu ngữ chỉ nên được chỉ định bởi các ứng dụng có hoạt động xử lý ý định CATEGORY_LEANBACK_LAUNCHER.

Bạn phải đặt thuộc tính này làm tệp đối chiếu đến một tài nguyên có thể vẽ chứa hình ảnh (ví dụ: "@drawable/banner"). Không có biểu ngữ mặc định.

Xem mục Cung cấp biểu ngữ trên màn hình chính trong phần Bắt đầu với ứng dụng TV để biết thêm thông tin.

android:clearTaskOnLaunch
Liệu mọi hoạt động có bị xoá khỏi tác vụ hay không, ngoại trừ hoạt động gốc, bất cứ khi nào hoạt động đó được khởi chạy lại từ màn hình chính – "true" nếu tác vụ đó luôn bị loại bỏ khỏi hoạt động gốc và "false" nếu không. Giá trị mặc định là "false". Thuộc tính này chỉ có ý nghĩa đối với các hoạt động khởi chạy một tác vụ mới (hoạt động gốc); thuộc tính này bị bỏ qua đối với tất cả các hoạt động khác trong tác vụ.

Khi giá trị là "true", mỗi lần người dùng bắt đầu lại tác vụ, họ sẽ được đưa đến hoạt động gốc bất kể lần gần đây nhất họ đang thực hiện điều gì trong tác vụ và bất kể liệu họ có sử dụng nút Back (Quay lại) hoặc Home (Màn hình chính) để rời khỏi hay không. Khi giá trị là "false", tác vụ có thể không có các hoạt động (xem thuộc tính alwaysRetainTaskState) nhưng không phải lúc nào cũng vậy.

Ví dụ: giả sử ai đó khởi chạy hoạt động P từ màn hình chính và từ đó chuyển đến hoạt động Q. Tiếp theo, người dùng nhấn Home (Màn hình chính) rồi quay lại hoạt động P. Thông thường, người dùng sẽ thấy hoạt động Q vì đó là hoạt động gần nhất của họ trong tác vụ của P. Tuy nhiên, nếu P đặt cờ này là "true", thì tất cả các hoạt động trên đó (Q trong trường hợp này) sẽ bị xoá khi người dùng chạy hoạt động P từ màn hình chính. Vì vậy, người dùng sẽ chỉ thấy P khi quay lại tác vụ.

Nếu thuộc tính này và allowTaskReparenting đều là "true", thì mọi hoạt động có thể được gán lại về cấp độ gốc đều được di chuyển sang tác vụ mà chúng chia sẻ đối tượng tương đồng (affinity); các hoạt động còn lại sau đó sẽ bị huỷ như mô tả ở trên.

Thuộc tính này sẽ bị bỏ qua nếu bạn không thiết lập FLAG_ACTIVITY_RESET_TASK_IF_NEEDED.

android:colorMode

Yêu cầu hiển thị hoạt động ở chế độ gam màu rộng trên các thiết bị tương thích. Ở chế độ gam màu rộng, một cửa sổ có thể hiển thị bên ngoài gam màu SRGB để hiển thị các màu rực rỡ hơn. Nếu thiết bị không hỗ trợ tính năng hiển thị gam màu rộng, thuộc tính này không có hiệu ứng. Để biết thêm thông tin về việc hiển thị ở chế độ màu rộng, vui lòng xem phần Cải thiện đồ hoạ với nội dung màu rộng.

android:configChanges
Liệt kê các thay đổi về cấu hình mà hoạt động sẽ tự xử lý. Khi một thay đổi cấu hình xảy ra trong thời gian chạy, hoạt động sẽ tắt và khởi động lại theo mặc định. Tuy nhiên, việc khai báo cấu hình có thuộc tính này sẽ ngăn hoạt động khởi động lại. Thay vào đó, hoạt động vẫn chạy và phương thức onConfigurationChanged() của thao tác này được gọi.

Lưu ý: Chỉ sử dụng thuộc tính này trong các trường hợp đặc biệt để cải thiện hiệu suất và tốc độ phản hồi của ứng dụng. Để biết thêm thông tin, hãy xem bài viết Xử lý các thay đổi về cấu hình.

Mọi chuỗi sau đây đều là giá trị hợp lệ cho thuộc tính này. Nhiều giá trị được phân tách bằng "|", ví dụ: "locale|navigation|orientation".

Giá trị Mô tả
"density" Mật độ hiển thị đã thay đổi – người dùng có thể đã chỉ định một tỷ lệ hiển thị khác, hoặc màn hình khác hiện có thể đang hoạt động.

Đã thêm trong API cấp độ 24.

"fontScale" Hệ số tỷ lệ phông chữ đã thay đổi – người dùng đã chọn một kích thước phông chữ chung mới.
"keyboard" Loại bàn phím đã thay đổi - ví dụ người dùng đã cắm bàn phím ngoài.
"keyboardHidden" Tính năng hỗ trợ tiếp cận của bàn phím đã thay đổi – ví dụ: người dùng đã mở bàn phím phần cứng.
"layoutDirection" Hướng bố cục đã thay đổi – ví dụ: thay đổi từ trái sang phải (LTR) thành phải sang trái (RTL).

Đã thêm trong API cấp độ 17.

"locale" Ngôn ngữ đã thay đổi — người dùng đã chọn ngôn ngữ mới hiển thị văn bản.
"mcc" Mã quốc gia trên thiết bị di động của IMSI (MCC) đã thay đổi — một SIM đã được phát hiện và cập nhật MCC.
"mnc" Mã mạng di động IMSI (MNC) đã thay đổi – một SIM đã được phát hiện và cập nhật MNC.
"navigation" Loại điều hướng (bi xoay/bàn phím định hướng) đã thay đổi. (Điều này thường không bao giờ xảy ra.)
"orientation"

Hướng màn hình đã thay đổi — người dùng đã xoay thiết bị.

Lưu ý: Nếu ứng dụng nhắm đến Android 3.2 (API cấp 13) trở lên, bạn cũng nên khai báo các cấu hình "screenLayout""screenSize" vì bố cục và kích thước màn hình có thể thay đổi khi một thiết bị chuyển đổi giữa hướng dọc và ngang.

"screenLayout" Bố cục màn hình đã thay đổi – một màn hình khác có thể đang hoạt động.
"screenSize" Kích thước màn hình có sẵn hiện tại đã thay đổi.

Điều này thể hiện sự thay đổi về kích thước hiện có, tương ứng với tỷ lệ khung hình hiện tại, vì vậy sẽ thay đổi khi người dùng chuyển đổi giữa chế độ ngang và dọc.

Đã thêm trong API cấp độ 13.

"smallestScreenSize" Kích thước màn hình thực đã thay đổi.

Điều này thể hiện sự thay đổi về kích thước bất kể hướng nên sẽ chỉ thay đổi khi kích thước màn hình thực tế thay đổi, chẳng hạn như khi chuyển sang màn hình bên ngoài. Một thay đổi đối với cấu hình này tương ứng với một thay đổi trong cấu hình smallestWidth.

Đã thêm trong API cấp độ 13.

"touchscreen" Màn hình cảm ứng đã thay đổi. (Điều này thường không bao giờ xảy ra.)
"uiMode" Chế độ giao diện người dùng đã thay đổi — người dùng đã đặt thiết bị vào một không gian làm việc hoặc đế trên xe hoặc chế độ ban đêm đã thay đổi. Để biết thêm thông tin về các chế độ giao diện người dùng, vui lòng xem UiModeManager.

Đã thêm trong API cấp độ 8.

Tất cả những thay đổi về cấu hình này có thể ảnh hưởng đến các giá trị tài nguyên mà ứng dụng nhìn thấy. Do đó, khi onConfigurationChanged() được gọi, thông thường bạn cần phải truy xuất lại mọi tài nguyên (bao gồm bố cục chế độ xem, các mục có thể vẽ và các tài nguyên khác) để xử lý thay đổi đúng cách.

Lưu ý: Để xử lý tất cả các thay đổi liên quan đến cấu hình liên quan đến chế độ Nhiều cửa sổ, hãy sử dụng cả "screenLayout""smallestScreenSize". Chế độ Nhiều cửa sổ được hỗ trợ trong phiên bản Android 7.0 (API cấp độ 24) trở lên.

android:directBootAware

Liệu hoạt động có nhận biết trực tiếp khi khởi động hay không; nghĩa là nó có thể chạy trước khi người dùng mở khoá thiết bị hay không.

Lưu ý: Trong quá trình Khởi động trực tiếp (Direct Boot), một hoạt động trong ứng dụng của bạn chỉ có thể truy cập vào dữ liệu được lưu trữ trong bộ nhớ được bảo vệ của thiết bị.

Giá trị mặc định là "false".

android:documentLaunchMode
Chỉ định cách thêm bản sao hoạt động mới vào một tác vụ mỗi khi ứng dụng đó được khởi chạy. Thuộc tính này cho phép người dùng mở nhiều tài liệu từ cùng một ứng dụng trên màn hình tổng quan.

Thuộc tính này có bốn giá trị tạo ra các hiệu ứng sau đây khi người dùng mở một tài liệu bằng ứng dụng:

Giá trị Mô tả
"intoExisting" Hệ thống tìm kiếm một tác vụ có ComponentName và URI dữ liệu của ý định cơ sở khớp với của ý định khởi chạy. Nếu tìm thấy một tác vụ như thế, hệ thống sẽ xoá tác vụ đó và khởi động lại với hoạt động gốc nhận cuộc gọi đến onNewIntent(android.content.Intent). Nếu không tìm thấy tác vụ đó, hệ thống sẽ tạo một tác vụ mới.
"always" Hoạt động tạo ra một tác vụ mới cho tài liệu, ngay cả khi tài liệu đó đã được mở. Việc này cũng giống như việc đặt cả hai cờ FLAG_ACTIVITY_NEW_DOCUMENTFLAG_ACTIVITY_MULTIPLE_TASK.
"none" Hoạt động không tạo ra tác vụ mới cho chính nó. Đây là giá trị mặc định, giá trị này chỉ tạo tác vụ mới khi bạn đặt FLAG_ACTIVITY_NEW_TASK. Màn hình tổng quan sẽ xử lý hoạt động theo mặc định: màn hình này hiển thị một tác vụ duy nhất cho ứng dụng và sẽ tiếp tục từ bất kỳ hoạt động nào mà người dùng thực hiện gần đây nhất.
"never" Hoạt động này không được khởi chạy vào tài liệu mới ngay cả khi Ý định có chứa FLAG_ACTIVITY_NEW_DOCUMENT. Việc đặt tuỳ chọn này sẽ ghi đè hành vi của cờ FLAG_ACTIVITY_NEW_DOCUMENTFLAG_ACTIVITY_MULTIPLE_TASK nếu một trong hai cờ này được đặt trong hoạt động và màn hình tổng quan hiển thị một tác vụ duy nhất cho ứng dụng vốn sẽ tiếp tục từ bất kỳ hoạt động nào mà người dùng đã gọi gần đây nhất.

Lưu ý: Đối với các giá trị không phải là "none" và "never", bạn phải xác định hoạt động bằng launchMode="standard". Nếu không chỉ định thuộc tính này, hệ thống sẽ sử dụng documentLaunchMode="none".

android:enabled
Liệu hệ thống có thể tạo bản sao hoạt động này hay không — "true" nếu có thể và "false" nếu không thể. Giá trị mặc định là "true".

Phần tử <application> có thuộc tính enabled riêng áp dụng cho tất cả thành phần của ứng dụng, bao gồm cả hoạt động. Cả hai thuộc tính <application><activity> phải được đặt là "true" (vì cả hai đều theo mặc định) để hệ thống có thể tạo bản sao hoạt động. Nếu là "false", sẽ không thể tạo bản sao.

android:excludeFromRecents
Liệu có nên loại trừ tác vụ do hoạt động này khởi xướng khỏi danh sách các ứng dụng được sử dụng gần đây hay không, màn hình tổng quan. Điều này nghĩa là khi hoạt động này là hoạt động gốc của một tác vụ mới, thuộc tính sẽ xác định liệu tác vụ có nên xuất hiện trong danh sách ứng dụng gần đây hay không. Đặt "true" nếu tác vụ cần bị loại trừ khỏi danh sách; đặt "false" nếu tác vụ cần được đưa vào. Giá trị mặc định là "false".

android:exported
Phần tử này đặt ra liệu hoạt động có thể được khởi chạy bởi các thành phần của các ứng dụng khác hay không:

  • Nếu "true", hoạt động này có thể truy cập được bởi bất kỳ ứng dụng nào và có thể khởi chạy bằng tên lớp chính xác của nó.
  • Nếu "false", hoạt động chỉ có thể được khởi chạy bởi các thành phần của cùng một ứng dụng, các ứng dụng có cùng mã người dùng hoặc thành phần hệ thống đặc quyền. Đây là giá trị mặc định khi không có bộ lọc ý định.

Nếu một hoạt động trong ứng dụng của bạn có các bộ lọc ý định, hãy đặt phần tử này thành "true" để cho phép các ứng dụng khác khởi động nó. Ví dụ: nếu hoạt động là hoạt động chính của ứng dụng và bao gồm category "android.intent.category.LAUNCHER".

Nếu bạn đặt phần tử này thành "false" và một ứng dụng cố gắng khởi động hoạt động này, thì hệ thống sẽ gửi một ActivityNotFoundException.

Thuộc tính này không phải là cách duy nhất để hạn chế mức độ hiển thị của một hoạt động với các ứng dụng khác. Bạn cũng có thể sử dụng quyền để giới hạn các thực thể bên ngoài gọi ra hoạt động đó (hãy xem thuộc tính permission).

android:finishOnTaskLaunch
Liệu bản sao hiện có của hoạt động có cần bị tắt (đã hoàn tất) hay không, ngoại trừ hoạt động gốc, bất cứ khi nào người dùng bắt đầu chạy lại tác vụ (chọn tác vụ trên màn hình chính) — "true" nếu là tuỳ chọn nên tắt và "false" nếu là tuỳ chọn không tắt. Giá trị mặc định là "false".

Nếu thuộc tính này và allowTaskReparenting đều là "true", thuộc tính này sẽ được ưu tiên so với thuộc tính còn lại. Đối tượng tương đồng (affinity) của hoạt động bị bỏ qua. Hoạt động không được gán lại vào nhóm gốc mà bị huỷ.

Thuộc tính này sẽ bị bỏ qua nếu bạn không đặt FLAG_ACTIVITY_RESET_TASK_IF_NEEDED.

android:hardwareAccelerated
Liệu tính năng kết xuất tăng tốc phần cứng có nên được bật cho Hoạt động này hay không – "true" nếu tính năng này nên được bật và "false" nếu tính năng này không nên được bật. Giá trị mặc định là "false".

Kể từ phiên bản Android 3.0, trình kết xuất OpenGL tăng tốc phần cứng sẽ được cung cấp cho các ứng dụng, nhằm cải thiện hiệu suất cho nhiều thao tác đồ hoạ 2D phổ biến. Khi bật trình kết xuất tăng tốc phần cứng, hầu hết các thao tác trong Canvas, Paint, Xfermode, ColorFilter, Chương trình đổ bóng và Máy ảnh đều được tăng tốc. Điều này giúp ảnh động mượt mà hơn, khả năng cuộn mượt mà hơn và mức độ phản hồi tổng thể tốt hơn, ngay cả đối với những ứng dụng không sử dụng thư viện OpenGL của khung một cách rõ ràng. Do đã tăng tài nguyên cần thiết để bật tính năng tăng tốc phần cứng, nên ứng dụng sẽ tốn nhiều RAM hơn.

Lưu ý không phải tất cả các hoạt động OpenGL 2D đều được tăng tốc. Nếu bạn bật trình kết xuất tăng tốc phần cứng, hãy kiểm thử ứng dụng để đảm bảo ứng dụng có thể sử dụng trình kết xuất mà không gặp lỗi.

android:icon
Một biểu tượng đại diện cho hoạt động. Biểu tượng này được hiển thị cho người dùng khi cần hiển thị hoạt động trên màn hình. Ví dụ: biểu tượng về các hoạt động khởi đầu tác vụ được hiển thị trong cửa sổ trình chạy. Biểu tượng thường đi kèm với nhãn (xem thuộc tính android:label).

Bạn phải đặt thuộc tính này làm tham chiếu đến một tài nguyên có thể vẽ và chứa định nghĩa hình ảnh. Nếu bạn không đặt thuộc tính này, hệ thống sẽ sử dụng biểu tượng đã chỉ định chung cho ứng dụng (xem thuộc tính icon của phần tử <application>).

Biểu tượng của hoạt động – bất kể được đặt ở đây hay do phần tử <application> đặt – cũng là biểu tượng mặc định cho tất cả bộ lọc ý định của hoạt động (xem thuộc tính icon của phần tử <intent-filter>).

android:immersive
Đặt chế độ chìm cho hoạt động hiện tại. Nếu thuộc tính android:immersive được đặt thành true trong mục nhập tệp kê khai của ứng dụng cho hoạt động này, thành viên ActivityInfo.flags luôn được đặt bit FLAG_IMMERSIVE ngay cả khi chế độ chìm được thay đổi khi chạy bằng phương thức setImmersive().
android:label
Nhãn người dùng có thể đọc cho hoạt động. Nhãn được hiển thị trên màn hình khi hoạt động phải được hiển thị cho người dùng. Nó thường được hiển thị cùng với biểu tượng hoạt động.

Nếu bạn không đặt thuộc tính này, nhãn được đặt chung cho ứng dụng sẽ được sử dụng (xem thuộc tính label của phần tử <application>).

Nhãn của hoạt động – bất kể được đặt ở đây hay do phần tử <application> đặt – cũng là nhãn mặc định cho tất cả bộ lọc ý định của hoạt động (xem thuộc tính label của phần tử <intent-filter>).

Nhãn phải được đặt làm tham chiếu đến tài nguyên chuỗi để có thể được bản địa hoá như các chuỗi khác trong giao diện người dùng. Tuy nhiên, để thuận tiện trong quá trình phát triển ứng dụng, bạn cũng có thể đặt nhãn này làm chuỗi thô.

android:launchMode
Hướng dẫn cách khởi chạy hoạt động. Có năm chế độ hoạt động cùng với cờ hoạt động (hằng số FLAG_ACTIVITY_*) trong các đối tượng Intent để xác định hành động cần xảy ra khi hoạt động được gọi để xử lý một ý định. Chúng là:

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

Chế độ mặc định là "standard".

Như hiển thị trong bảng bên dưới, các chế độ được chia thành hai nhóm chính, với các hoạt động "standard" và "singleTop" ở một bên và "singleTask", "singleInstance", và hoạt động "singleInstancePerTask" ở bên kia. Một hoạt động có chế độ khởi chạy "standard" hoặc "singleTop" có thể được khởi tạo nhiều lần. Các phiên bản này có thể thuộc về bất kỳ tác vụ nào và có thể nằm ở bất kỳ vị trí nào trong ngăn xếp hoạt động. Thông thường, chúng được khởi chạy trong tác vụ có tên là startActivity() (trừ khi đối tượng ý định có chứa lệnh FLAG_ACTIVITY_NEW_TASK, trong trường hợp đó, một tác vụ khác được chọn — xem thuộc tính taskAffinity).

Ngược lại, các hoạt động "singleTask", "singleInstance" và "singleInstancePerTask" có các hành vi khác nhau. "singleInstancePerTask" luôn là thư mục gốc của tác vụ hoạt động. Hơn nữa, thiết bị chỉ có thể lưu giữ một bản sao của "singleInstance" cùng một lúc, trong khi "singleInstancePerTask hoạt động có thể được tạo nhiều lần trong các nhiệm vụ khác nhau khi FLAG_ACTIVITY_MULTIPLE_TASK hoặc FLAG_ACTIVITY_NEW_DOCUMENT đã được đặt. Một hoạt động có chế độ chạy "singleTask" kết hợp các hành vi của "singleInstance" và "singleInstancePerTask": hoạt động có thể được tạo thực thể nhiều lần và có thể được đặt bất cứ khi nào trong một tác vụ của cùng taskAffinity. Trong khi đó, thiết bị chỉ có thể lưu giữ một việc cần làm để xác định vị trí hoạt động “singleTask” ở gốc của việc cần làm đó.

Các chế độ "standard" và "singleTop" khác nhau chỉ trong một khía cạnh: Mỗi lần có ý định mới cho hoạt động "standard", thì một bản sao mới của lớp được tạo ra để phản hồi ý định đó. Mỗi bản sao chỉ xử lý một ý định duy nhất. Tương tự, bạn cũng có thể tạo một bản sao mới của hoạt động "singleTop" để xử lý ý định mới. Tuy nhiên, nếu nhiệm vụ mục tiêu đã có bản sao hoạt động hiện có ở đầu ngăn xếp, thì bản sao đó sẽ nhận được ý định mới (trong lệnh gọi onNewIntent()); bản sao mới không được tạo. Trong các trường hợp khác, ví dụ như nếu bản sao hiện tại của hoạt động "singleTop" nằm trong nhiệm vụ mục tiêu, nhưng không ở đầu ngăn xếp, hoặc nếu hoạt động đó nằm ở đầu một ngăn xếp nhưng không phải trong tác vụ mục tiêu - thì một bản sao mới sẽ được tạo và đẩy vào ngăn xếp.

Tương tự như vậy, nếu bạn di chuyển lên một hoạt động trên ngăn xếp hiện tại, hành vi đó sẽ được xác định bởi chế độ chạy của hoạt động gốc (parent activity). Nếu hoạt động gốc (parent activity) có chế độ khởi chạy singleTop (hoặc ý định up chứa FLAG_ACTIVITY_CLEAR_TOP), cấp độ gốc sẽ được đưa đến phần trên cùng của ngăn xếp và trạng thái của chế độ này được duy trì. Ý định điều hướng nhận được bằng phương thức onNewIntent() của hoạt động gốc. Nếu hoạt động gốc có chế độ khởi chạy standard (và ý định up không chứa FLAG_ACTIVITY_CLEAR_TOP), hoạt động hiện tại và hoạt động gốc của nó đều bật ra khỏi ngăn xếp, và bản sao của hoạt động gốc được tạo ra để nhận ý định điều hướng.

"singleInstance chế độ " cũng khác với "singleTask " và "singleInstancePerTask " chỉ ở một khía cạnh: hoạt động có "singleTask " hoặc "singleInstancePerTask ” chế độ chạy cho phép các hoạt động khác (cần thiết "standard " và "singleTop "." là một phần của nhiệm vụ. Mặt khác, hoạt động "singleInstance" không cho phép bất kỳ hoạt động nào khác tham gia hoạt động; đó phải là hoạt động duy nhất trong tác vụ. Nếu nó khởi đầu một hoạt động khác, hoạt động đó được gán cho một tác vụ khác – như thể FLAG_ACTIVITY_NEW_TASK nằm trong ý định.

Trường hợp Sử dụng Chế độ khởi chạy Nhiều bản sao? Bình luận
Khởi chạy thông thường cho hầu hết các hoạt động "standard" Mặc định. Hệ thống luôn tạo một bản sao hoạt động mới trong tác vụ mục tiêu và định tuyến ý định đó.
"singleTop" Có điều kiện Nếu một bản sao hoạt động đã tồn tại ở đầu tác vụ mục tiêu, hệ thống sẽ chuyển ý định đến bản sao đó thông qua lệnh gọi phương thức onNewIntent(), thay vì tạo một bản sao mới của hoạt động.
Phát hành chuyên biệt
(không dành để sử dụng chung)
"singleTask" Có điều kiện Hệ thống tạo hoạt động vào thư mục gốc của một việc cần làm mới hoặc định vị hoạt động trong một việc cần làm hiện có bằng cùng một đối tượng chung sở thích. Nếu một bản sao của hoạt động đã tồn tại và là thư mục gốc của tác vụ, thì hệ thống sẽ định tuyến ý định đến bản sao hiện có thông qua lệnh gọi đến phương thức onNewIntent(), thay vì tạo một bản sao mới.
"singleInstance" Không Giống như "singleTask", ngoại trừ việc hệ thống không chạy bất kỳ hoạt động nào khác vào tác vụ đang giữ bản sao đó. Hoạt động luôn là thành viên đơn nhất và duy nhất trong tác vụ của nó.
"singleInstancePerTask" Có điều kiện Hoạt động chỉ có thể chạy dưới dạng hoạt động gốc của việc cần làm, hoạt động đầu tiên đã tạo việc đó và do đó sẽ chỉ có một trường hợp của hoạt động này trong một việc cần làm; nhưng hoạt động có thể được tạo bản sao nhiều lần trong các nhiệm vụ khác nhau.

Như hiển thị trong bảng trên, standard là chế độ mặc định và phù hợp với hầu hết các loại hoạt động. SingleTop cũng là chế độ chạy phổ biến và hữu ích cho nhiều loại hoạt động. Các chế độ khác — singleTasksingleInstancesingleInstancePerTaskkhông phù hợp với hầu hết các ứng dụng vì các chế độ này dẫn đến một mô hình tương tác nhiều khả năng không quen thuộc với người dùng và rất khác so với hầu hết các ứng dụng khác.

Bất kể bạn chọn chế độ chạy nào, hãy nhớ kiểm tra khả năng sử dụng của hoạt động khi đang chạy và khi quay lại chế độ đó từ các hoạt động và tác vụ khác bằng nút Back (Quay lại).

Để biết thêm thông tin về các chế độ chạy và hoạt động tương tác của các chế độ đó với cờ Ý định, vui lòng xem tài liệu Tác vụ và Ngăn xếp phía sau.

android:lockTaskMode
Xác định cách hệ thống hiển thị hoạt động này khi thiết bị đang chạy trong chế độ tác vụ khoá.

Android có thể chạy các tác vụ theo cách chìm (immerse), kiểu kiosk được gọi là chế độ khoá tác vụ. Khi hệ thống chạy ở chế độ khoá tác vụ, người dùng thiết bị thường không thể xem được thông báo, truy cập vào các ứng dụng không có trong danh sách cho phép hoặc quay lại màn hình chính (trừ khi ứng dụng trên Màn hình chính có trong danh sách cho phép). Chỉ các ứng dụng đã được bộ điều khiển chính sách thiết bị (DPC) cho phép mới có thể chạy khi hệ thống đang ở chế độ khoá tác vụ. Tuy nhiên, hệ thống và ứng dụng đặc quyền có thể chạy ở chế độ khoá tác vụ mà không cần được thêm vào danh sách cho phép.

Giá trị này có thể là một trong các giá trị chuỗi R.attr.lockTaskMode sau đây:

Giá trị Mô tả
"normal" Giá trị mặc định. Đây là giá trị mặc định. Các tác vụ không chạy trong chế độ khoá tác vụ nhưng có thể được đặt ở đó bằng cách gọi startLockTask().
"never"

Các tác vụ không chạy ở chế độ khoá tác vụ và người dùng thiết bị không thể ghim các tác vụ này từ màn hình tổng quan.

Lưu ý: Chế độ này chỉ dành cho các ứng dụng của hệ thống và ứng dụng đặc quyền. Những ứng dụng không đặc quyền có giá trị này được coi là normal.

"if_whitelisted" Nếu DPC cho phép gói này bằng cách sử dụng DevicePolicyManager.setLockTaskPackages(), chế độ này sẽ giống với always, ngoại trừ hoạt động cần gọi stopLockTask() trước khi có thể hoàn tất nếu đây là tác vụ bị khoá gần nhất. Nếu DPC không cho phép gói này, chế độ này giống hệt với normal.
"always"

Những tác vụ đã bị can thiệp vào hoạt động này luôn chạy ở chế độ khoá tác vụ. Nếu hệ thống đã ở chế độ tác vụ khoá khi tác vụ này chạy, tác vụ mới sẽ được chạy bên cạnh tác vụ hiện tại. Những tác vụ đã chạy ở chế độ này có thể thoát khỏi chế độ khoá tác vụ bằng cách gọi finish().

Lưu ý: Chế độ này chỉ dành cho các ứng dụng của hệ thống và ứng dụng đặc quyền. Những ứng dụng không đặc quyền có giá trị này được coi là normal.

Thuộc tính này đã được giới thiệu trong API cấ độ 23.p

android:maxRecents
Số tác vụ tối đa được lấy từ hoạt động này trên màn hình tổng quan. Khi đạt đến số mục nhập này, hệ thống sẽ xoá phiên bản được sử dụng gần đây nhất khỏi màn hình tổng quan. Các giá trị hợp lệ là từ 1 đến 50 (25 trên các thiết bị có bộ nhớ thấp); giá trị bằng 0 là không hợp lệ. Đây phải là một giá trị số nguyên, chẳng hạn như 50. Giá trị mặc định là 16.
android:maxAspectRatio

Tỷ lệ khung hình tối đa mà hoạt động hỗ trợ. Nếu ứng dụng chạy trên một thiết bị có tỷ lệ khung hình rộng hơn, thì hệ thống sẽ tự động tạo hộp thư cho ứng dụng, khiến các phần màn hình không dùng để ứng dụng có thể chạy ở tỷ lệ khung hình tối đa đã chỉ định.

Tỷ lệ khung hình tối đa được biểu thị dưới dạng số thập phân của thương số là kết quả khi chia kích thước dài cho kích thước ngắn. Ví dụ: nếu tỷ lệ khung hình tối đa là 7:3, hãy đặt giá trị của thuộc tính này là 2.33.

Trên các thiết bị không dành để đeo, giá trị của thuộc tính này phải từ 1.33 trở lên. Trên thiết bị đeo, giá trị này phải từ 1.0 trở lên. Nếu không, hệ thống sẽ bỏ qua giá trị đã đặt.

Lưu ý: Thuộc tính này sẽ bị bỏ qua nếu hoạt động đã đặt resizeableActivity thành true (đúng) vì điều đó có nghĩa là hoạt động của bạn hỗ trợ mọi kích thước.

Để biết thêm thông tin về thuộc tính này, hãy xem phần Khai báo tỷ lệ khung hình tối đa trong bài viết Khai báo hỗ trợ màn hình hạn chế.

android:multiprocess
Liệu một bản sao của hoạt động có thể được khởi chạy trong quy trình của thành phần khởi động nó hay không – “true” nếu có thể và “false” nếu không thể. Giá trị mặc định là "false".

Thông thường, một bản sao mới của hoạt động được khởi chạy trong quy trình của ứng dụng đã xác định bản sao đó, vì vậy tất cả các bản sao của hoạt động đều chạy trong cùng một quy trình. Tuy nhiên, nếu cờ này được đặt là "true", thì các bản sao của hoạt động có thể chạy trong nhiều quy trình, cho phép hệ thống tạo các bản sao ở những nơi chúng được sử dụng (miễn là được phép), đây là điều gần như không bao giờ cần đến hoặc mong muốn.

android:name
Tên của lớp triển khai hoạt động, một lớp con của Activity. Giá trị thuộc tính phải là tên lớp hoàn toàn đủ điều kiện (chẳng hạn như " com.example.project.ExtracurricularActivity"). Tuy nhiên, khi viết tắt, nếu ký tự đầu tiên của tên này là một dấu chấm (ví dụ: , ".ExtracurricularActivity"), thì nó được thêm vào namespace (không gian tên) được chỉ định trong tệp build.gradle.

Sau khi phát hành ứng dụng, bạn không nên thay đổi tên này (trừ khi bạn đã đặt android:exported="false").

Không có giá trị mặc định. Bạn phải chỉ định tên.

android:noHistory
Liệu hoạt động có nên bị xoá khỏi ngăn xếp hoạt động hay không và được hoàn tất (phương thức finish() của nó được gọi) khi người dùng di chuyển xa khỏi nó và nó không còn hiển thị trên màn hình — "true" nếu hoạt động nên được kết thúc và "false" nếu hoạt động không nên được kết thúc. Giá trị mặc định là "false".

Giá trị "true" có nghĩa là hoạt động sẽ không để lại dấu vết trước đây. Thuộc tính này sẽ không nằm trong ngăn xếp hoạt động cho tác vụ, do đó, người dùng sẽ không thể quay lại tác vụ đó. Trong trường hợp này, onActivityResult() sẽ không bao giờ được gọi nếu bạn khởi đầu một hoạt động khác cho một kết quả từ hoạt động này.

Thuộc tính này đã được giới thiệu trong API cấp độ 3.

android:parentActivityName
Tên lớp phần tử gốc logic của hoạt động. Tên ở đây phải khớp với tên lớp bạn đã cung cấp cho thuộc tính android:name của phần tử <activity> tương ứng.

Hệ thống sẽ đọc thuộc tính này để xác định hoạt động cần bắt đầu khi người dùng nhấn nút mũi tên Lên trên thanh hành động. Hệ thống cũng có thể sử dụng thông tin này để tổng hợp một ngăn xếp lui gồm các hoạt động với TaskStackBuilder.

Để hỗ trợ API cấp độ 4 – 16, bạn cũng có thể khai báo hoạt động cấp độ gốc với phần tử <meta-data> chỉ định một giá trị cho "android.support.PARENT_ACTIVITY". Ví dụ:

<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>

Để biết thêm thông tin về việc khai báo hoạt động gốc hỗ trợ tính năng điều hướng Lên, hãy đọc phần Cung cấp tính năng Điều hướng Lên.

Thuộc tính này đã được giới thiệu trong API cấp độ 16.

android:persistableMode

Xác định cách một bản sao hoạt động được lưu giữ trong một tác vụ vùng chứa khi thiết bị khởi động lại.

Nếu hoạt động gốc của một tác vụ đã đặt giá trị của thuộc tính này thành persistRootOnly, thì chỉ hoạt động gốc mới được duy trì. Nếu không, các hoạt động cao hơn trong ngăn xếp lui của tác vụ sẽ được kiểm tra; các hoạt động đặt giá trị của thuộc tính này thành persistAcrossReboots đều được giữ nguyên.

Nếu sử dụng thuộc tính này, bạn phải đặt giá trị cho một trong các giá trị sau:

Giá trị Mô tả
persistRootOnly Giá trị mặc định. Khi hệ thống khởi động lại, tác vụ hoạt động sẽ được giữ nguyên, nhưng chỉ ý định khởi chạy của hoạt động gốc được sử dụng.

Khi ý định khởi chạy của ứng dụng tải hoạt động gốc của ứng dụng, hoạt động đó sẽ không nhận được đối tượng PersistableBundle. Do đó, bạn không nên sử dụng onSaveInstanceState() để duy trì trạng thái hoạt động gốc của ứng dụng trong thời gian khởi động lại của thiết bị.

Lưu ý: Giá trị thuộc tính này chỉ ảnh hưởng đến hành vi của ứng dụng nếu giá trị này được đặt trên hoạt động gốc của ứng dụng.

persistAcrossReboots

Trạng thái của hoạt động này vẫn được giữ nguyên cùng với trạng thái của từng hoạt động ở cao hơn trong ngăn xếp lui có thuộc tính persistableMode riêng được đặt thành persistAcrossReboots. Nếu một hoạt động không đặt thuộc tính persistableMode được đặt thành persistAcrossReboots hoặc nếu hoạt động đó được chạy bằng cờ Intent.FLAG_ACTIVITY_NEW_DOCUMENT, thì hoạt động đó cùng tất cả hoạt động cao hơn ở ngăn xếp lui không được giữ nguyên.

Khi một ý định tải một hoạt động có thuộc tính persistableMode được đặt thành persistAcrossReboots trong ứng dụng của bạn, thì hoạt động đó sẽ nhận được một đối tượng PersistableBundle trong phương thức onCreate(). Do đó, bạn có thể dùng onSaveInstanceState() để bảo toàn trạng thái của hoạt động khi thiết bị khởi động lại, miễn là thuộc tính persistableMode của ứng dụng đó được đặt làpersistAcrossReboots.

Lưu ý: Giá trị thuộc tính này ảnh hưởng đến hoạt động của ứng dụng ngay cả khi giá trị đó được đặt trên một hoạt động khác không phải hoạt động gốc của ứng dụng.

persistNever

Trạng thái của hoạt động không được duy trì.

Lưu ý: Giá trị thuộc tính này chỉ ảnh hưởng đến hành vi của ứng dụng nếu giá trị này được đặt trên hoạt động gốc của ứng dụng.

Thuộc tính này giới thiệu trong API cấp độ 21.

android:permission
Tên của quyền mà khách hàng phải có để khởi chạy hoạt động đó hoặc để phản hồi một ý định. Nếu trình gọi của startActivity() hoặc startActivityForResult() chưa được cấp quyền đã chỉ định, ý định của trình gọi đó sẽ không được gửi đến hoạt động.

Nếu bạn không đặt thuộc tính này, quyền do thuộc tính permission của phần tử <application> đặt sẽ áp dụng cho hoạt động. Nếu bạn không đặt thuộc tính nào, hoạt động sẽ không được bảo vệ bởi quyền.

Để biết thêm thông tin về các quyền, hãy xem nội dung Quyền trong phần giới thiệu cũng như tài liệu Bảo mật và quyền.

android:process
Tên của quy trình mà hoạt động sẽ chạy. Thông thường, tất cả các thành phần của ứng dụng chạy bằng tên quy trình mặc định được tạo cho ứng dụng và bạn không cần phải sử dụng thuộc tính này. Tuy nhiên, nếu cần, bạn có thể ghi đè tên quy trình mặc định bằng thuộc tính này, cho phép bạn trải các thành phần ứng dụng trên nhiều quy trình.

Nếu tên gán cho thuộc tính này bắt đầu bằng dấu hai chấm (":"), thì một quy trình mới (dành riêng cho ứng dụng) sẽ được tạo khi cần và hoạt động sẽ chạy trong quy trình đó. Nếu tên quy trình bắt đầu bằng một ký tự viết thường, thì hoạt động sẽ chạy trong một quy trình chung của tên đó, miễn nó có quyền làm như vậy. Điều này cho phép các thành phần trong nhiều ứng dụng chia sẻ một quy trình, giúp giảm mức sử dụng tài nguyên.

Thuộc tính processcủa phần tử <application> có thể đặt tên quy trình mặc định khác cho tất cả các thành phần.

android:relinquishTaskIdentity
Liệu hoạt động có từ bỏ giá trị nhận dạng tác vụ của mình đối với một hoạt động phía trên nó trong ngăn xếp tác vụ hay không. Một tác vụ có hoạt động gốc đã đặt thuộc tính này thành "true" sẽ thay ý định cơ sở bằng thuộc tính của hoạt động tiếp theo trong tác vụ. Nếu hoạt động tiếp theo cũng đặt thuộc tính này thành "true", thao tác này sẽ tạo ra Ý định cơ sở cho mọi hoạt động mà thuộc tính này khởi chạy trong cùng một tác vụ. Tác vụ này sẽ tiếp tục cho từng hoạt động cho đến khi có hoạt động gặp phải thứ đã đặt thuộc tính này thành "false". Giá trị mặc định là "false".

Thuộc tính này được đặt thành "true" cũng cho phép hoạt động sử dụng ActivityManager.TaskDescription để thay đổi nhãn, màu sắc và biểu tượng trên màn hình tổng quan.

resizeableActivity

Chỉ định việc ứng dụng có hỗ trợ chế độ nhiều cửa sổ hay không. Bạn có thể đặt thuộc tính này trong phần tử <activity> hoặc <application>.

Nếu bạn đặt thuộc tính này thành đúng (true), thì người dùng có thể chạy hoạt động ở chế độ chia đôi màn hình và biểu mẫu tuỳ ý. Nếu bạn đặt thuộc tính thành sai (false), ứng dụng không thể được kiểm thử hoặc tối ưu hoá cho môi trường nhiều cửa sổ. Hệ thống vẫn có thể đưa hoạt động vào chế độ nhiều cửa sổ khi đã áp dụng chế độ tương thích. Việc đặt thuộc tính này thành đúng (true) cũng không đảm bảo sẽ không có ứng dụng nào khác ở chế độ nhiều cửa sổ xuất hiện trên màn hình (chẳng hạn như hình trong hình) hoặc trên các màn hình khác. Do đó, việc đặt cờ này không đảm bảo ứng dụng của bạn có quyền truy cập độc quyền vào tài nguyên.

Nếu ứng dụng của bạn nhắm đến API cấp độ 24 trở lên, nhưng bạn không chỉ định giá trị cho thuộc tính này, giá trị của thuộc tính này sẽ mặc định là đúng (true).

Nếu ứng dụng của bạn nhắm đến API cấp độ 31 trở lên, thuộc tính này sẽ hoạt động khác nhau trên màn hình nhỏ và lớn:

  • Màn hình lớn (sw >= 600dp): Tất cả ứng dụng đều hỗ trợ chế độ nhiều cửa sổ. Thuộc tính này cho biết ứng dụng có thể đổi kích thước hay không (chứ không phải ứng dụng có hỗ trợ chế độ nhiều cửa sổ hay không). Nếu resizeableActivity="false", ứng dụng sẽ được đưa vào chế độ tương thích khi cần thiết để phù hợp với kích thước màn hình.
  • Màn hình nhỏ (sw < 600dp): Nếu resizeableActivity="true" và chiều rộng cũng như chiều cao tối thiểu của hoạt động nằm trong yêu cầu nhiều cửa sổ, ứng dụng sẽ hỗ trợ chế độ nhiều cửa sổ. Nếu resizeableActivity="false", ứng dụng sẽ không hỗ trợ chế độ nhiều cửa sổ bất kể chiều rộng và chiều cao tối thiểu hoạt động là bao nhiêu.

Lưu ý: Nhà sản xuất thiết bị có thể ghi đè hành vi của API cấp độ 31.

Thuộc tính này đã được thêm vào API cấp độ 24.

Lưu ý: Giá trị hoạt động gốc của một tác vụ được áp dụng cho mọi hoạt động bổ sung được khởi chạy trong tác vụ đó. Tức là nếu có thể đổi kích thước hoạt động gốc của một nhiệm vụ, hệ thống sẽ coi tất cả hoạt động khác trong nhiệm vụ đó là có thể đổi kích thước. Nếu hoạt động gốc không thể đổi kích thước, các hoạt động khác trong nhiệm vụ đó cũng không thể đổi kích thước.

android:screenOrientation
Hướng hiển thị của hoạt động trên thiết bị. Hệ thống sẽ bỏ qua thuộc tính này nếu hoạt động chạy ở chế độ nhiều cửa sổ.

Giá trị có thể là bất kỳ chuỗi nào trong số các chuỗi sau:

"unspecified" Giá trị mặc định. Hệ thống sẽ chọn hướng. Chính sách sử dụng và do đó, các lựa chọn được đưa ra trong các ngữ cảnh cụ thể có thể khác nhau tuỳ theo thiết bị.
"behind" Hướng tương tự như hoạt động ngay bên dưới trong ngăn xếp hoạt động.
"landscape" Hướng ngang (màn hình với rộng lớn hơn chiều cao).
"portrait" Hướng dọc (màn hình với chiều cao lớn hơn chiều rộng).
"reverseLandscape" Hướng ngang theo hướng đối diện hướng ngang thông thường. Đã thêm trong API cấp độ 9.
"reversePortrait" Hướng dọc theo hướng đối diện với hướng dọc thông thường. Đã thêm trong API cấp độ 9.
"sensorLandscape" Hướng ngang, nhưng có thể là ngang thông thường hoặc ngang đảo ngược tuỳ theo cảm biến thiết bị. Cảm biến được sử dụng ngay cả khi người dùng đã khoá tuỳ chọn xoay trên cảm biến. Đã thêm trong API cấp độ 9.
"sensorPortrait" Hướng dọc, nhưng có thể là dọc thông thường hoặc dọc ngược tuỳ theo cảm biến thiết bị. Cảm biến được sử dụng ngay cả khi người dùng đã khoá tuỳ chọn xoay trên cảm biến. Đã thêm trong API cấp độ 9.
"userLandscape" Hướng ngang, nhưng có thể là ngang thông thường hoặc ngang đảo ngược tuỳ theo cảm biến thiết bị và tuỳ chọn của người dùng. Đã thêm trong API cấp độ 18.
"userPortrait" Hướng dọc, nhưng có thể là dọc thông thường hoặc dọc đảo ngược tuỳ theo cảm biến thiết bị và tuỳ chọn của người dùng. Đã thêm trong API cấp độ 18.
"sensor" Hướng được xác định bởi cảm biến hướng của thiết bị. Hướng của màn hình phụ thuộc vào cách người dùng đang cầm thiết bị; nó thay đổi khi người dùng xoay thiết bị. Tuy nhiên, theo mặc định, một số thiết bị sẽ không xoay sang cả bốn hướng có thể. Để cho phép cả bốn hướng, hãy sử dụng "fullSensor" Cảm biến sẽ được sử dụng ngay cả khi người dùng khoá chế độ xoay dựa trên cảm biến.
"fullSensor" Hướng được xác định bằng cảm biến hướng thiết bị cho bất kỳ hướng nào trong 4 hướng. Chế độ này tương tự như "sensor", ngoại trừ nó cho phép bất kỳ hướng nào trong số 4 hướng màn hình, bất kể thiết bị thường làm gì (ví dụ: một số thiết bị thường không sử dụng chế độ màn hình dọc đảo ngược hoặc ngang đảo ngược nhưng chế độ này cho phép điều đó). Đã thêm trong API cấp độ 9.
"nosensor" Hướng được xác định mà không cần tham chiếu đến cảm biến hướng thực. Cảm biến sẽ bị bỏ qua, vì vậy, màn hình sẽ không xoay theo cách người dùng di chuyển thiết bị.
"user" Hướng ưa thích hiện tại của người dùng.
"fullUser" Nếu người dùng đã khoá tính năng xoay dựa trên cảm biến, thì chế độ này sẽ hoạt động giống như user, hoặc ngược lại, chế độ này hoạt động giống như fullSensor và cho phép sử dụng bất kỳ hướng nào trong 4 hướng màn hình. Đã thêm trong API cấp độ 18.
"locked" Khoá hướng xoay hiện tại của nó bất kể hướng gì.Đã thêm vào API cấp độ 18.

Lưu ý: Khi bạn khai báo một trong các giá trị ngang hoặc dọc, tuỳ chọn này được xem là một yêu cầu bắt buộc đối với hướng mà hoạt động chạy. Do đó, giá trị bạn khai báo sẽ bật tính năng lọc theo các dịch vụ như Google Play, vì vậy, ứng dụng của bạn chỉ có sẵn cho các thiết bị hỗ trợ hướng mà hoạt động yêu cầu. Ví dụ: nếu bạn khai báo "landscape", "reverseLandscape" hoặc "sensorLandscape", ứng dụng của bạn sẽ chỉ có sẵn cho các thiết bị hỗ trợ hướng ngang. Tuy nhiên, bạn cũng nên khai báo rõ ràng ứng dụng của bạn yêu cầu hướng dọc hoặc ngang với phần tử <uses-feature>. Ví dụ: <uses-feature android:name="android.hardware.screen.portrait"/>. Đây chỉ là hành vi lọc do Google Play (và các dịch vụ khác hỗ trợ) cung cấp và bản thân nền tảng cũng không kiểm soát việc ứng dụng của bạn có thể cài đặt được khi thiết bị chỉ hỗ trợ một số hướng nhất định hay không.

android:showForAllUsers

Liệu hoạt động có hiển thị khi người dùng hiện tại của thiết bị không phải người dùng đã khởi chạy hoạt động đó hay không. Bạn có thể đặt thuộc tính này thành một giá trị chữ – "true" hoặc "false" – hoặc đặt thuộc tính về thuộc tính tài nguyên hoặc giao diện có chứa giá trị boolean.

Thuộc tính này đã được thêm vào API cấp độ 23.

android:stateNotNeeded
Liệu hoạt động có thể bị huỷ và khởi động lại thành công hay không khi không lưu trạng thái của hoạt động đó: "true" nếu thẻ có thể khởi động lại mà không tham chiếu đến trạng thái trước đó và "false" nếu bắt buộc phải có trạng thái trước đó. Giá trị mặc định là "false".

Thông thường, trước khi một hoạt động tạm thời bị tắt để tiết kiệm tài nguyên, phương thức onSaveInstanceState()của hoạt động đó sẽ được gọi. Phương thức này lưu trữ trạng thái hiện tại của hoạt động trong một đối tượng Bundle, sau đó được chuyển đến onCreate() khi hoạt động này được khởi động lại. Nếu thuộc tính này được đặt thành "true", onSaveInstanceState() có thể không được gọi và onCreate() sẽ được chuyển null thay vì Gói — tương tự như khi hoạt động khởi động lần đầu tiên.

Tuỳ chọn cài đặt "true" đảm bảo bạn có thể bắt đầu lại hoạt động khi thiếu trạng thái giữ lại. Ví dụ: hoạt động hiển thị màn hình chính sử dụng chế độ cài đặt này để đảm bảo hoạt động này không bị xoá nếu bị sự cố vì lý do nào đó.

supportsPictureInPicture

Chỉ định xem hoạt động có hỗ trợ màn hình Hình trong hình hay không.

Thuộc tính này đã được thêm vào API cấp độ 24.

android:taskAffinity
Tác vụ mà hoạt động có đối tượng tương đồng. Về mặt lý thuyết, các hoạt động có cùng đối tượng tương đồng (affinity) thuộc về cùng một tác vụ (đối với cùng một "ứng dụng" từ quan điểm của người dùng). Đối tượng tương đồng của một tác vụ được xác định bằng đối tượng tương đồng của hoạt động gốc.

Đối tượng tương đồng xác định hai thứ, đó là những tác vụ mà hoạt động được gán lại thuộc tính gốc cho (xem thuộc tính allowTaskReparenting) và tác vụ sẽ lưu trữ hoạt động đó khi người dùng khởi động hoạt động bằng FLAG_ACTIVITY_NEW_TASK.

Theo mặc định, tất cả hoạt động trong một ứng dụng đều có cùng đối tượng tương đồng. Bạn có thể đặt thuộc tính này để nhóm các thuộc tính khác nhau lại và thậm chí đặt các hoạt động được xác định trong các ứng dụng khác nhau trong cùng một tác vụ. Để chỉ định hoạt động không có đối tượng tương đồng cho bất kỳ tác vụ nào, hãy đặt hoạt động đó thành một chuỗi trống.

Nếu bạn không đặt thuộc tính này, hoạt động sẽ kế thừa bộ đối tượng tương đồng của ứng dụng (xem thuộc tính taskAffinity của phần tử <application>). Tên của đối tượng tương đồng (affinity) mặc định cho một ứng dụng là không gian tên được đặt trong tệp build.gradle.

android:theme
Đây là tệp tham chiếu đến tài nguyên kiểu xác định chủ đề chung của hoạt động. Thao tác này sẽ tự động đặt ngữ cảnh của hoạt động để sử dụng giao diện này (xem setTheme() và cũng có thể khiến ảnh động "bắt đầu" trước khi hoạt động bắt đầu (để phù hợp hơn với hình thức thực sự của hoạt động).

Nếu bạn không đặt thuộc tính này, hoạt động sẽ kế thừa toàn bộ giao diện của ứng dụng — từ thuộc tính theme của phần tử <application>. Nếu thuộc tính đó cũng không được đặt, giao diện mặc định của hệ thống sẽ được sử dụng. Để biết thêm thông tin, hãy xem hướng dẫn dành cho nhà phát triển về Kiểu và giao diện.

android:uiOptions
Các tuỳ chọn bổ sung cho giao diện người dùng của một hoạt động.

Phải là một trong các giá trị sau đây.

Giá trịMô tả
"none"Không có tuỳ chọn bổ sung cho giao diện người dùng. Đây là tuỳ chọn mặc định.
"splitActionBarWhenNarrow"Thêm một thanh ở cuối màn hình để thể hiện các mục hành động trong thanh ứng dụng (còn gọi là thanh hành động), khi bị hạn chế về không gian ngang (chẳng hạn như khi ở chế độ dọc trên điện thoại). Thay vì một số ít mục hành động xuất hiện trong thanh ứng dụng ở đầu màn hình, thanh ứng dụng sẽ được chia thành phần điều hướng ở trên cùng và mục hành động ở thanh dưới cùng. Việc này giúp đảm bảo một không gian lưu trữ hợp lý được cung cấp không chỉ cho các mục hành động mà còn cho các phần tử điều hướng và tiêu đề ở trên cùng. Các mục trong trình đơn không được chia thành hai thanh; chúng luôn xuất hiện cùng nhau.

Để biết thêm thông tin về thanh ứng dụng, hãy xem lớp học về chủ đề Thêm thanh ứng dụng.

Thuộc tính này đã được thêm vào từ API cấp độ 14.

android:windowSoftInputMode
Cách cửa sổ chính của hoạt động tương tác với cửa sổ chứa bàn phím mềm trên màn hình. Tuỳ chọn cài đặt của thuộc tính này ảnh hưởng đến hai điều:
  • Trạng thái của bàn phím mềm – dù ở trạng thái ẩn hay hiển thị khi hoạt động trở thành tiêu điểm chú ý của người dùng.
  • Điều chỉnh được thực hiện với cửa sổ chính của hoạt động – liệu có nên thu nhỏ kích thước để tạo không gian cho bàn phím mềm hay không, hay nội dung của bàn phím có nên được kéo để giúp hiển thị tiêu điểm hiện tại hay không khi một phần của cửa sổ bị che khuất bởi bàn phím mềm.

Tuỳ chọn cài đặt này phải là một trong các giá trị được liệt kê trong bảng sau đây hoặc là sự kết hợp một giá trị "state..." cộng với một giá trị "adjust...". Việc đặt nhiều giá trị trong một nhóm, ví dụ như nhiều giá trị "state...", chứa các kết quả không xác định. Các giá trị riêng lẻ được phân tách bằng thanh dọc (|). Ví dụ:

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

Các giá trị được đặt tại đây (ngoài "stateUnspecified" và "adjustUnspecified") ghi đè giá trị được đặt trong giao diện.

Giá trị Mô tả
"stateUnspecified" Bạn chưa chỉ định trạng thái của bàn phím mềm (dù là ẩn hay hiển thị). Hệ thống sẽ chọn một trạng thái thích hợp hoặc dựa vào tuỳ chọn cài đặt trong giao diện.

Đây là chế độ cài đặt mặc định cho hành vi của bàn phím mềm.

"stateUnchanged" Bàn phím mềm được lưu trữ ở bất kỳ trạng thái nào gần đây nhất, dù hiển thị hay bị ẩn, khi hoạt động diễn ra ở phần trước.
"stateHidden" Bàn phím mềm bị ẩn khi người dùng chọn hoạt động - nghĩa là khi người dùng khẳng định sẽ chuyển đến hoạt động thay vì quay lại hoạt động đó vì đã rời khỏi một hoạt động khác.
"stateAlwaysHidden" Bàn phím mềm luôn bị ẩn khi cửa sổ chính của hoạt động có tiêu điểm nhập.
"stateVisible" Bàn phím mềm được hiển thị khi người dùng chọn hoạt động — tức là khi người dùng khẳng định sẽ chuyển hướng về hoạt động đó thay vì quay lại do đã rời hoạt động khác.
"stateAlwaysVisible" Bàn phím mềm sẽ hiển thị khi cửa sổ nhận được tiêu điểm nhập.
"adjustUnspecified" Không xác định được liệu cửa sổ chính của hoạt động có thay đổi kích thước để tạo chỗ trống cho bàn phím mềm hay không hoặc liệu nội dung của cửa sổ có được kéo để cho phép hiển thị tiêu điểm hiện tại trên màn hình hay không. Hệ thống sẽ tự động chọn một trong các chế độ này, tuỳ thuộc vào việc nội dung của cửa sổ có chế độ xem bố cục có thể cuộn nội dung hay không. Nếu có chế độ xem đó, cửa sổ sẽ được đổi kích thước với giả định thao tác cuộn có thể khiến tất cả nội dung của cửa sổ hiển thị ở khu vực nhỏ hơn.

Đây là chế độ cài đặt mặc định cho hoạt động của cửa sổ chính.

"adjustResize" Cửa sổ chính của hoạt động luôn được đổi kích thước để nhường chỗ cho bàn phím mềm trên màn hình.
"adjustPan" Cửa sổ chính của hoạt động không được đổi kích thước để nhường chỗ cho bàn phím mềm. Thay vào đó, các nội dung trong cửa sổ sẽ tự động xoay để sao cho tiêu điểm hiện tại không bị che khuất bởi bàn phím và người dùng luôn có thể xem nội dung họ đang nhập. Nhìn chung, bạn sẽ ít khi muốn thực hiện điều này hơn so với thay đổi kích thước vì người dùng có thể cần đóng bàn phím mềm để truy cập và tương tác với những phần bị che khuất của cửa sổ.

Thuộc tính này đã được giới thiệu trong API cấp độ 3.

ra mắt từ:
API cấp độ 1 cho tất cả các thuộc tính ngoại trừ noHistorywindowSoftInputMode đã được thêm trong API cấp độ 3.
xem thêm:
<application>
<activity-alias>