OnBackInvokedDispatcher
interface OnBackInvokedDispatcher
android.window.OnBackInvokedDispatcher |
Dispatcher to register OnBackInvokedCallback
instances for handling back invocations. It also provides interfaces to update the attributes of OnBackInvokedCallback
. Attribute updates are proactively pushed to the window manager if they change the dispatch target (a.k.a. the callback to be invoked next), or its behavior.
Summary
Constants | |
---|---|
static Int |
Default priority level of |
static Int |
Priority level of |
static Int |
Priority level of |
Public methods | |
---|---|
abstract Unit |
registerOnBackInvokedCallback(priority: Int, callback: OnBackInvokedCallback) Registers a |
abstract Unit |
Unregisters a |
Constants
PRIORITY_DEFAULT
static val PRIORITY_DEFAULT: Int
Default priority level of OnBackInvokedCallback
s.
Value: 0
PRIORITY_OVERLAY
static val PRIORITY_OVERLAY: Int
Priority level of OnBackInvokedCallback
s for overlays such as menus and navigation drawers that should receive back dispatch before non-overlays.
Value: 1000000
PRIORITY_SYSTEM_NAVIGATION_OBSERVER
static val PRIORITY_SYSTEM_NAVIGATION_OBSERVER: Int
Priority level of OnBackInvokedCallback
s designed to observe system-level back handling.
Callbacks registered with this priority do not consume back events. They receive back events whenever the system handles a back navigation and have no impact on the normal back navigation flow. Useful for logging or analytics.
Only one callback with PRIORITY_SYSTEM_NAVIGATION_OBSERVER
can be registered at a time.
Value: -2
Public methods
registerOnBackInvokedCallback
abstract fun registerOnBackInvokedCallback(
priority: Int,
callback: OnBackInvokedCallback
): Unit
Registers a OnBackInvokedCallback
. Within the same priority level, callbacks are invoked in the reverse order in which they are registered. Higher priority callbacks are invoked before lower priority ones.
Parameters | |
---|---|
priority |
Int: The priority of the callback. Value is android.window.OnBackInvokedDispatcher#PRIORITY_DEFAULT , android.window.OnBackInvokedDispatcher#PRIORITY_OVERLAY , or android.window.OnBackInvokedDispatcher#PRIORITY_SYSTEM_NAVIGATION_OBSERVER Value is 0 or greater |
callback |
OnBackInvokedCallback: The callback to be registered. If the callback instance has been already registered, the existing instance (no matter its priority) will be unregistered and registered again. This value cannot be null . |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
if the priority is negative. |
unregisterOnBackInvokedCallback
abstract fun unregisterOnBackInvokedCallback(callback: OnBackInvokedCallback): Unit
Unregisters a OnBackInvokedCallback
.
Parameters | |
---|---|
callback |
OnBackInvokedCallback: The callback to be unregistered. Does nothing if the callback has not been registered. This value cannot be null . |