ANativeActivityCallbacks

这些是框架向原生应用发出的回调。

摘要

所有这些回调都在应用的主线程上发生。默认情况下,所有回调都为 NULL;将其设置为指向您自己的函数指针即可调用该函数。

公共属性

onConfigurationChanged)(ANativeActivity *activity)
void(*
当前设备的 AConfiguration 已更改。
onContentRectChanged)(ANativeActivity *activity, const ARect *rect)
void(*
应放置内容的窗口矩形已更改。
onDestroy)(ANativeActivity *activity)
void(*
NativeActivity 正在被销毁。
onInputQueueCreated)(ANativeActivity *activity, AInputQueue *queue)
void(*
此原生 Activity 窗口的输入队列已创建。
onInputQueueDestroyed)(ANativeActivity *activity, AInputQueue *queue)
void(*
此原生 Activity 窗口的输入队列正在被销毁。
onLowMemory)(ANativeActivity *activity)
void(*
系统内存不足。
onNativeWindowCreated)(ANativeActivity *activity, ANativeWindow *window)
void(*
此原生 Activity 的绘图窗口已创建。
onNativeWindowDestroyed)(ANativeActivity *activity, ANativeWindow *window)
void(*
此原生 Activity 的绘图窗口即将被销毁。
onNativeWindowRedrawNeeded)(ANativeActivity *activity, ANativeWindow *window)
void(*
此原生 Activity 的绘图窗口需要重新绘制。
onNativeWindowResized)(ANativeActivity *activity, ANativeWindow *window)
void(*
此原生 Activity 的绘图窗口已调整大小。
onPause)(ANativeActivity *activity)
void(*
NativeActivity 已暂停。
onResume)(ANativeActivity *activity)
void(*
NativeActivity 已恢复。
onSaveInstanceState)(ANativeActivity *activity, size_t *outSize)
void *(*
框架要求 NativeActivity 保存其当前实例状态。
onStart)(ANativeActivity *activity)
void(*
NativeActivity 已启动。
onStop)(ANativeActivity *activity)
void(*
NativeActivity 已停止。
onWindowFocusChanged)(ANativeActivity *activity, int hasFocus)
void(*
此 NativeActivity 窗口的焦点已更改。

公共属性

onConfigurationChanged

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onConfigurationChanged)(ANativeActivity *activity)

当前设备的 AConfiguration 已更改。

新配置可以从 assetManager 中检索。

onContentRectChanged

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onContentRectChanged)(ANativeActivity *activity, const ARect *rect)

应放置内容的窗口矩形已更改。

onDestroy

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onDestroy)(ANativeActivity *activity)

NativeActivity 正在被销毁。

有关更多信息,请参阅 Activity.onDestroy() 的 Java 文档。

onInputQueueCreated

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onInputQueueCreated)(ANativeActivity *activity, AInputQueue *queue)

此原生 Activity 窗口的输入队列已创建。

您可以使用给定的输入队列开始检索输入事件。

onInputQueueDestroyed

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onInputQueueDestroyed)(ANativeActivity *activity, AInputQueue *queue)

此原生 Activity 窗口的输入队列正在被销毁。

从此函数返回后,您不应再尝试引用此对象。

onLowMemory

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onLowMemory)(ANativeActivity *activity)

系统内存不足。

使用此回调释放您不需要的资源,以帮助系统避免终止更重要的进程。

onNativeWindowCreated

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onNativeWindowCreated)(ANativeActivity *activity, ANativeWindow *window)

此原生 Activity 的绘图窗口已创建。

您可以使用给定的原生窗口对象开始绘图。

onNativeWindowDestroyed

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onNativeWindowDestroyed)(ANativeActivity *activity, ANativeWindow *window)

此原生 Activity 的绘图窗口即将被销毁。

从此函数返回后,您必须确保不再触及窗口对象:在从另一个线程向窗口绘图的常见情况下,这意味着此回调的实现必须与另一个线程进行适当同步,以在其绘图停止后再从此处返回。

onNativeWindowRedrawNeeded

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onNativeWindowRedrawNeeded)(ANativeActivity *activity, ANativeWindow *window)

此原生 Activity 的绘图窗口需要重新绘制。

为避免屏幕更改(例如旋转后调整大小)期间出现瞬时伪影,应用应在完成其窗口在当前状态下的绘图之前不从此函数返回。

onNativeWindowResized

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onNativeWindowResized)(ANativeActivity *activity, ANativeWindow *window)

此原生 Activity 的绘图窗口已调整大小。

您应该从窗口中检索新的大小,并确保您在其中的渲染现在与它匹配。

onPause

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onPause)(ANativeActivity *activity)

NativeActivity 已暂停。

有关更多信息,请参阅 Activity.onPause() 的 Java 文档。

onResume

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onResume)(ANativeActivity *activity)

NativeActivity 已恢复。

有关更多信息,请参阅 Activity.onResume() 的 Java 文档。

onSaveInstanceState

Declared in android/native_activity.h
void *(* ANativeActivityCallbacks::onSaveInstanceState)(ANativeActivity *activity, size_t *outSize)

框架要求 NativeActivity 保存其当前实例状态。

有关更多信息,请参阅 Activity.onSaveInstanceState() 的 Java 文档。返回的指针需要使用 malloc() 创建;框架将为您调用 free()。您还必须使用分配的字节数填充 outSize。请注意,保存的状态将持久化,因此不能包含任何活动实体(内存指针、文件描述符等)。

onStart

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onStart)(ANativeActivity *activity)

NativeActivity 已启动。

有关更多信息,请参阅 Activity.onStart() 的 Java 文档。

onStop

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onStop)(ANativeActivity *activity)

NativeActivity 已停止。

有关更多信息,请参阅 Activity.onStop() 的 Java 文档。

onWindowFocusChanged

Declared in android/native_activity.h
void(* ANativeActivityCallbacks::onWindowFocusChanged)(ANativeActivity *activity, int hasFocus)

此 NativeActivity 窗口的焦点已更改。

这通常用于例如当游戏失去输入焦点时暂停游戏。