ClojureActivity Delegate Functions
ClojureActivity automatically bridges Android Activity callbacks into a
Clojure namespace. Every function below is optional -- define only what you need.
The Clojure namespace is derived from the Java subclass name:
com.example.foo.MainActivity -> com.example.foo.main-activity
com.example.foo.NekoActivity -> com.example.foo.neko-activity
Override getClojureNamespace() in Java to use a custom namespace.
Functions marked returns boolean use Clojure truthiness: nil and false
are falsy, everything else is truthy. When such a function is not defined, the
default super behavior is used.
Clojure fn
Java method
Description
(on-create [activity ^Bundle bundle])
onCreate
Activity created. If absent, falls back to make-ui.
(on-restart [activity])
onRestart
Activity restarting after stop (not destroyed).
(on-start [activity])
onStart
Activity becoming visible.
(on-resume [activity])
onResume
Activity in foreground, interactive.
(on-pause [activity])
onPause
Activity losing focus.
(on-stop [activity])
onStop
Activity no longer visible.
(on-destroy [activity])
onDestroy
Activity being destroyed.
(on-save-instance-state [activity ^Bundle out-state])
onSaveInstanceState
Save transient state before destruction.
(on-restore-instance-state [activity ^Bundle saved-state])
onRestoreInstanceState
Restore state from bundle.
(make-ui [activity])
--
Return a View; used by reloadUi() and as on-create fallback.
Clojure fn
Java method
Description
(on-activity-result [activity request-code result-code ^Intent data])
onActivityResult
Result from startActivityForResult.
(on-new-intent [activity ^Intent intent])
onNewIntent
New intent delivered (singleTop/singleTask, deep links).
(on-back-pressed [activity])
onBackPressed
Back button pressed. If defined, replaces default back behavior entirely; your fn must handle navigation.
(on-request-permissions-result [activity request-code ^String[] permissions ^int[] grant-results])
onRequestPermissionsResult
Runtime permission request result (API 23+).
Menus
Clojure fn
Java method
Description
(on-create-options-menu [activity ^Menu menu])
onCreateOptionsMenu
Populate the options menu. Returns boolean -- truthy to display the menu.
(on-prepare-options-menu [activity ^Menu menu])
onPrepareOptionsMenu
Update menu before display. Returns boolean -- truthy to show.
(on-options-item-selected [activity ^MenuItem item])
onOptionsItemSelected
Options menu item tapped. Returns boolean -- truthy if consumed.
(on-create-context-menu [activity ^ContextMenu menu ^View view menu-info])
onCreateContextMenu
Populate a context (long-press) menu.
(on-context-item-selected [activity ^MenuItem item])
onContextItemSelected
Context menu item tapped. Returns boolean -- truthy if consumed.
Clojure fn
Java method
Description
(on-configuration-changed [activity ^Configuration config])
onConfigurationChanged
Device configuration changed (rotation, locale, etc.).
(on-low-memory [activity])
onLowMemory
System is running low on memory.
(on-trim-memory [activity level])
onTrimMemory
System requests memory trimming at the given level.
Clojure fn
Java method
Description
(on-window-focus-changed [activity has-focus])
onWindowFocusChanged
Window gained or lost focus. has-focus is boolean.
(on-attached-to-window [activity])
onAttachedToWindow
Activity's window attached to the window manager.
(on-detached-from-window [activity])
onDetachedFromWindow
Activity's window detached from the window manager.
Clojure fn
Java method
Description
(on-multi-window-mode-changed [activity in-multi-window ^Configuration config])
onMultiWindowModeChanged
Entered or exited multi-window mode. in-multi-window is boolean.
(on-picture-in-picture-mode-changed [activity in-pip ^Configuration config])
onPictureInPictureModeChanged
Entered or exited picture-in-picture. in-pip is boolean.
(on-user-leave-hint [activity])
onUserLeaveHint
User pressed Home or otherwise hinted at leaving. Useful for auto-entering PiP.
These are Java methods on ClojureActivity, not Clojure delegate functions:
Method
Description
ClojureActivity/getInstance(namespace)
Get the live activity instance for a namespace (for REPL use).
.reloadUi
Re-invoke make-ui and set the result as content view. Thread-safe.
ClojureActivity/reloadAll
Reload UI for all tracked activity instances.