gpt4 book ai didi

android - 处理 android native Activity 中的主要命令

转载 作者:搜寻专家 更新时间:2023-11-01 07:35:30 24 4
gpt4 key购买 nike

在 android 原生 Activity 中,您可以使用自己的方法处理来自系统的主要命令。我知道该怎么做,但我不知道我可以处理哪些状态。我知道很少有状态,例如 APP_CMD_SAVE_STATE、APP_CMD_INIT_WINDOW... 但这还不是全部。我无法在任何地方找到状态列表或 android_native_app_glue.h 头文件。有人可以推荐我或写下事件列表以及他们的电话号码和时间吗?
谢谢

void CMDMethod(struct android_app* app, int32_t state)
{
switch(state)
{
case APP_CMD_SAVE_STANE: //some code
break;
//what can be next cases?
}
}

void android_main(struct android_app* state)
{
state->onAppCmd = CMDMethod;
}

最佳答案

这是在 android_native_app_glue.h 中找到的枚举

enum {

APP_CMD_INPUT_CHANGED,

APP_CMD_INIT_WINDOW,

APP_CMD_TERM_WINDOW,

APP_CMD_WINDOW_RESIZED,

APP_CMD_WINDOW_REDRAW_NEEDED,

APP_CMD_CONTENT_RECT_CHANGED,

APP_CMD_GAINED_FOCUS,

APP_CMD_LOST_FOCUS,

APP_CMD_CONFIG_CHANGED,

APP_CMD_LOW_MEMORY,

APP_CMD_START,

APP_CMD_RESUME,

APP_CMD_SAVE_STATE,

APP_CMD_PAUSE,

APP_CMD_STOP,

APP_CMD_DESTROY,

};

APP_CMD_INPUT_CHANGED - 来自主线程的命令:AInputQueue 已更改。处理此命令后,android_app->inputQueue 将更新为新队列(或 NULL)。

APP_CMD_INIT_WINDOW - 来自主线程的命令:一个新的 ANativeWindow 已准备好使用。收到此命令后,android_app->window 将包含新的窗口表面。

APP_CMD_TERM_WINDOW - 来自主线程的命令:需要终止现有的 ANativeWindow。收到此命令后,android_app->window 仍包含现有窗口;在调用 android_app_exec_cmd 之后它将被设置为 NULL。

APP_CMD_WINDOW_RESIZED - 来自主线程的命令:当前 ANativeWindow 已调整大小。请使用新尺寸重新绘制。

APP_CMD_WINDOW_REDRAW_NEEDED - 来自主线程的命令:系统需要重绘当前的 ANativeWindow。在将其传递给 android_app_exec_cmd() 之前,您应该重绘窗口以避免 transient 绘图故障。

APP_CMD_CONTENT_RECT_CHANGED - 来自主线程的命令:窗口的内容区域已经改变,例如来自正在显示或隐藏的软输入窗口。您可以在 android_app::contentRect 中找到新的内容矩形。

APP_CMD_GAINED_FOCUS - 来自主线程的命令:应用程序的 Activity 窗口已获得输入焦点。

APP_CMD_LOST_FOCUS - 来自主线程的命令:应用程序的 Activity 窗口失去了输入焦点。

APP_CMD_CONFIG_CHANGED - 来自主线程的命令:当前设备配置已更改。

APP_CMD_LOW_MEMORY - 来自主线程的命令:系统内存不足。尽量减少内存使用。

APP_CMD_START - 来自主线程的命令:应用的 Activity 已启动。

APP_CMD_RESUME - 来自主线程的命令:应用程序的 Activity 已恢复。

APP_CMD_SAVE_STATE - 来自主线程的命令:应用程序应该为自己生成一个新的已保存状态,以便在以后需要时恢复。如果您已保存状态,请使用 malloc 分配它并将其放置在 android_app.savedState 中,其大小在 android_app.savedStateSize 中。稍后将为您释放。

APP_CMD_PAUSE - 来自主线程的命令:应用程序的 Activity 已暂停。

APP_CMD_STOP - 来自主线程的命令:应用程序的 Activity 已停止。

APP_CMD_DESTROY - 来自主线程的命令:正在销毁应用程序的 Activity ,并等待应用程序线程清理并退出,然后再继续。

关于android - 处理 android native Activity 中的主要命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11820289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com