ActivityFlags 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
列舉由多種類型回傳的值,並作為多種類型的參數取出。
此列舉支援其成員值的位元組合。
[System.Flags]
public enum ActivityFlags
[<System.Flags>]
type ActivityFlags =
- 繼承
-
ActivityFlags
- 屬性
欄位
| 名稱 | 值 | Description |
|---|---|---|
| GrantReadUriPermission | 1 | 若設定為此意圖,接收者將獲得對意圖資料中 URI 及其 ClipData 中指定的 URI 執行讀取操作的權限。 |
| GrantWriteUriPermission | 2 | 若設定為此意圖,接收者將被授權對意圖資料中的 URI 及其 ClipData 中指定的 URI 執行寫入操作。 |
| FromBackground | 4 | 呼叫者可設定此意圖來自背景操作,而非直接使用者互動。 |
| DebugLogResolution | 8 | 一個你可以啟用的除錯旗標:設定後,在解決這個意圖時會印出日誌訊息,讓你看到什麼,從而建立最終已解決的清單。 |
| ExcludeStoppedPackages | 16 | 若設定此意圖,則不會匹配目前已停止的套件中任何元件。 |
| IncludeStoppedPackages | 32 | 若設定此意圖,將與目前停止的套件中任何元件相匹配。 |
| GrantPersistableUriPermission | 64 | 當結合 FLAG_GRANT_READ_URI_PERMISSION 和/或 FLAG_GRANT_WRITE_URI_PERMISSION 時,URI 權限授權可在裝置重啟後持續存在,直到被明確撤銷為止,使用 Context.revokeUriPermission(Uri,int) 。 此旗幟僅提供可能持續存在的補助;接收應用程式必須呼叫 ContentResolver.takePersistableUriPermission(Uri,int) 才能真正持久化。 |
| GrantPrefixUriPermission | 128 | 當與 FLAG_GRANT_READ_URI_PERMISSION 和/或 FLAG_GRANT_WRITE_URI_PERMISSION 結合時,URI 授權適用於任何與原始授予 URI 為前綴匹配的 URI。 (若無此標記,URI 必須完全匹配才能獲得存取。)只有當 scheme、權限及所有由前綴定義的路徑段完全匹配時,另一個 URI 才被視為前綴匹配。 |
| DirectBootAuto | 256 | Flag 過去會根據 Direct Boot 的感知值和當前使用者狀態自動匹配意圖。 由於預設行為是自動套用當前使用者狀態,這實際上是一個哨兵值,不會根據有無改變任何查詢的輸出。 相反地,這個值與 StrictMode.VmPolicy.Builder.detectImplicitDirectBoot() 結合時,可以用來偵測呼叫者是否依賴隱性自動匹配,而非確認他們想要的明確行為。 恆定值:256(0x00000100) |
| RequireDefault | 512 | 若在傳遞給 Context.startActivity() 的意圖中設定,此旗標僅在意圖解決為單一結果時啟動。 若無此類結果,或系統選擇器本應顯示,則會拋出 ActivityNotFoundException。 |
| RequireNonBrowser | 1024 | 若在傳遞給 Context.startActivity() 的意圖中設定,此旗標僅在該意圖解析為非瀏覽器結果時啟動。 若無此類結果,則會拋出 ActivityNotFoundException。 |
| MatchExternal | 2048 | 若在傳給 Context.startActivity() 的意圖中設定,若裝置上沒有完整應用程式能處理該意圖,此旗標將嘗試啟動即時應用程式。 嘗試在外部解析即時應用程式時,支援以下 Intent 屬性:Intent.setAction(String) Intent.addCategory(String) Intent.setData(Uri) Intent.setType(String) Intent.setPackage(String) Intent.addFlags(int) 若找不到即時應用程式,安裝程式會啟動通知使用者意圖無法解析。 在不支援即時應用程式的裝置上,這個標記會被忽略。 恆定值:2048(0x00000800) |
| LaunchAdjacent | 4096 | 此旗幟僅用於分割畫面多視窗模式。 如果可能,新活動會顯示在啟動活動旁邊。 這只能與 FLAG_ACTIVITY_NEW_TASK 結合使用。 此外,若想建立現有活動的新實例,必須設定 FLAG_ACTIVITY_MULTIPLE_TASK。 |
| RetainInRecents | 8192 | 預設情況下,FLAG_ACTIVITY_NEW_DOCUMENT 建立的文件在使用者關閉時(會用返回或其他方式結束)時,最近任務中的條目會被移除。 如果你想改為讓文件保留在最近狀態以便重新啟動,可以使用這個標記。 當設定完成且任務活動結束後,最近紀錄會保留在介面中,讓使用者重新啟動,就像頂層應用程式的最近紀錄一樣。 接收的活動可使用 R.attr.autoRemoveFromRecents 或明確呼叫 Activity.finishAndRemoveTask() 來覆寫此請求。 |
| TaskOnHome | 16384 | 若在傳給 Context.startActivity() 的 Intent 中設定,此旗標會使新啟動的任務被放在目前的 Home 活動任務(如果有的話)之上。 也就是說,從任務中返回總會讓使用者回到家,即使那不是他們最後看到的活動。 這只能與 FLAG_ACTIVITY_NEW_TASK 結合使用。 |
| ClearTask | 32768 | 若在傳遞給 Context.startActivity() 的意圖中設定,此旗標會使任何與該活動相關聯的現有任務在活動開始前被清除。 也就是說,該活動成為原本空置任務的新根源,所有舊的活動都已完成。 這只能與 FLAG_ACTIVITY_NEW_TASK 結合使用。 |
| NoAnimation | 65536 | 若在傳入 Context.startActivity() 的意圖中設定,此旗標將阻止系統套用活動轉換動畫以進入下一個活動狀態。 這並不代表動畫永遠不會執行——如果在活動開始前發生了未指定此標誌的活動變更,該轉換就會被使用。 這個旗標在執行一系列活動操作時可以派上用場,但使用者看到的動畫不應該是由第一個活動變更驅動,而是後續的變化。 |
| ReorderToFront | 131072 | 若在傳入 Context.startActivity() 的意圖中設定,此旗標會使已啟動的活動在任務的歷史堆疊中被列到最前面,且該活動已在執行中。 例如,考慮一項包含四個活動的任務:A、B、C、D。若 D 呼叫 startActivity(),意圖解析為活動 B 的元件,則 B 會被帶到歷史堆疊的最前端,順序為:A、C、D、B。若FLAG_ACTIVITY_CLEAR_TOP也被指定,此旗幟將被忽略。 |
| NoUserAction | 262144 | 若設定此旗標,將阻止正常的 Activity.onUserLeaveHint() 回撥在當前最前端活動發生,該回調會暫停,因為新啟動的活動會被移到最前端。 通常,活動可以依賴該回調來表示明確的使用者行為導致其活動被移出前景。 回調標記活動生命週期中的適當時點,讓它能忽略任何打算「直到使用者看到」的通知,例如閃爍的 LED 燈。 如果活動是透過任何非使用者驅動的事件(如電話接聽或警報處理器)開始,這個旗標應該傳給 Context.startActivity,確保暫停中的活動不會認為使用者已確認通知。 恆定值:262144(0x00040000) |
| ClearWhenTaskReset | 524288 | 此常數在 API 等級 21 中被棄用。 從 API 21 起,這與應該使用的 FLAG_ACTIVITY_NEW_DOCUMENT 完全相同。 |
| NewDocument | 524288 | 此旗標用於將文件開啟為根植於該意圖所啟動活動的新任務。 透過使用此旗標或其等效屬性,R.attr.documentLaunchMode 會顯示同一活動的多個實例,包含不同文件,會出現在最近的任務清單中。 此標記的活動屬性形式 R.attr.documentLaunchMode 會被優先使用,而非此處描述的 Intent 旗標。 屬性表單允許活動為所有啟動器指定多個文件行為,而使用此旗標則需每個啟動活動的意圖指定。 請注意,這個旗標的預設語意,例如活動結束後最近條目是否被保留,與使用 FLAG_ACTIVITY_NEW_TASK 和 R.attr.documentLaunchMode 不同——如果此旗標被用來建立新的最近紀錄,那麼該條目會在活動結束後自動移除。 你可以用FLAG_ACTIVITY_RETAIN_IN_RECENTS來修改這個行為。 FLAG_ACTIVITY_NEW_DOCUMENT 可與 FLAG_ACTIVITY_MULTIPLE_TASK 結合使用。 單獨使用時,它相當於 Activity manifest 指定 R.attr.documentLaunchMode =“intoExisting”。 當與 FLAG_ACTIVITY_MULTIPLE_TASK 一起使用時,它相當於 Activity manifest 指定 R.attr.documentLaunchMode =「always」。 即使與 FLAG_ACTIVITY_MULTIPLE_TASK 配合使用,當活動清單指定 R.attr.documentLaunchMode =“never”時,該旗標也會被忽略。 更多資訊請參閱 R.attr.documentLaunchMode。 另見:R.attr.documentLaunchMode FLAG_ACTIVITY_MULTIPLE_TASK 常數值:524288 (0x00080000) |
| LaunchedFromHistory | 1048576 | 這個旗標通常不是由應用程式代碼設定,而是系統在從歷史紀錄中啟動此活動時自動設定(長按主鍵)。 |
| ReceiverVisibleToInstantApps | 2097152 | 若設定為此,該廣播將透過即時應用程式顯示給接收器。 預設情況下,即時應用程式不會接收廣播。 這個旗標在即時應用程式使用時不會生效。 |
| ResetTaskIfNeeded | 2097152 | 如果設定好,且這個活動要麼是在新任務中啟動,要麼是將現有任務推到最上方,那麼它就會作為任務的前門啟動。 |
| BroughtToFront | 4194304 | 這個旗標通常不是由應用程式代碼設定,而是系統自動為你設定,如 launchMode 文件中針對 singleTask 模式的說明。 |
| ExcludeFromRecents | 8388608 | 若設定為新活動,該新活動不會被保留在最近啟動的活動清單中。 |
| PreviousIsTop | 16777216 | 如果設定了,且這個意圖用來從現有活動啟動新活動,目前的活動不會被視為決定是否要送達新意圖而非新活動的最高優先活動。 前一個活動會被用作頂點,假設當前活動會立即結束。 |
| ForwardResult | 33554432 | 若設定且此意圖用於從現有活動啟動新活動,則該現有活動的回覆目標將轉移至新活動。 |
| ClearTop | 67108864 | 如果設定完成,且正在啟動的活動已經在目前任務中執行,那麼不會啟動該活動的新實例,而是所有在該活動上方的其他活動都會被關閉,這個意圖會以新的意圖形式交付給(現在已經在最上面的)舊活動。 例如,考慮一項任務,包含活動:A、B、C、D。若 D 呼叫 startActivity(),其意圖解析為活動 B 的元件,則 C 與 D 將完成,B 接收該意圖,堆疊為:A, B。上述範例中,目前執行的活動 B 會以其 onNewIntent() 方法接收你正在開始的新意圖,或是自己完成並以新意圖重新啟動。 如果它宣告啟動模式為「多重」(預設),且你沒有在同一意圖下設定FLAG_ACTIVITY_SINGLE_TOP,那麼啟動模式會被完成並重新建立;對於所有其他啟動模式,或若設定FLAG_ACTIVITY_SINGLE_TOP,則此意圖將傳送至當前實例的 onNewIntent()。 此啟動模式也可與 FLAG_ACTIVITY_NEW_TASK 搭配使用:若用於啟動任務的根活動,會將該任務目前執行的實例推至前景,然後清除至根狀態。 這在從通知管理器啟動活動時尤其有用。 更多關於任務的資訊,請參閱任務與後置堆疊。 恆定值:67108864(0x04000000) |
| MultipleTask | 134217728 | 除非你有實作自己的頂層應用程式啟動器,否則不要使用這個旗標。NewTask永遠 由於預設系統不包含圖形化任務管理,除非你提供使用者回返回已啟動任務的方式,否則不應使用此旗標。 更多關於任務的資訊,請參閱 任務與後置堆疊 。 |
| ReceiverNoAbort | 134217728 | 如果這是有序的廣播,不要讓接收器中止廣播。 它們仍能將結果傳遞給後續接收器,但無法阻止後續接收器看到該廣播。 |
| NewTask | 268435456 | 若設定此活動,將成為歷史堆疊中新任務的起點。 任務(從啟動該任務的活動到下一個任務活動)定義了一個使用者可以移動到的原子組活動。 任務可以移到前景和背景;特定任務中的所有活動總是保持相同的順序。 更多關於任務的資訊,請參閱任務與後置堆疊。 這個旗標通常用於想要呈現「啟動器」風格行為的活動:它們會給使用者一份可執行的獨立事項清單,否則這些活動會完全獨立於啟動活動之外執行。 使用此旗標時,若任務已在執行,則不會啟動新活動;相反地,當前任務會直接顯示在螢幕前方,顯示上次任務的狀態。 請參考FLAG_ACTIVITY_MULTIPLE_TASK,有標記可以停用此行為。 當呼叫者請求啟動活動的結果時,此旗標無法使用。 恆定值:268435456(0x10000000) |
| ReceiverForeground | 268435456 | 若設定為此,發送廣播時接收方可優先以前景優先順序運行,且逾時間隔較短。 |
| ReceiverReplacePending | 536870912 | 若設定為此,發送廣播時,新廣播會取代任何與之相符的待處理廣播。 匹配由 Intent.filterEquals 定義,該 回傳兩個廣播的意圖為真。 當找到匹配時,新的廣播(及其相關的接收者)會取代待處理列表中的現有廣播,並保持在列表中的同一位置。 此旗標最常用於黏著式廣播,因為這些廣播只關心將最新的廣播數值傳送給接收器。 |
| SingleTop | 536870912 | 若設定為此,若活動已在歷史堆疊頂端執行,則不會啟動。 |
| NoHistory | 1073741824 | 若設定為新活動,則不會保留在歷史堆疊中。 |
| ReceiverRegisteredOnly | 1073741824 | 若設定為此,發送廣播時只會呼叫註冊接收器——不會啟動 BroadcastReceiver 元件。 |
備註
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。