处理android原生活动中的主要命令
Handle main commands in android native activity
在android原生活动中,您可以用自己的方法处理系统中的主要命令。我知道如何做到这一点,但我不知道我能处理所有的状态。我知道很少有像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()之前,您应该重新绘制窗口,以避免出现短暂的绘图故障。
APP_CMD_CONTENT_RECT_CHANGED-来自主线程的命令:窗口的内容区域已更改,例如显示或隐藏的软输入窗口。您可以在android_app::contentRect中找到新的内容rect。
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-来自主线程的命令:应用程序应该为自己生成一个新的保存状态,以便在需要时从以后恢复。如果您已经保存了状态,请使用malloc对其进行分配,并将其放置在android_app.savedState中,大小为android_app.savedStateSize。稍后将为您释放。
APP_CMD_PAUSE-来自主线程的命令:应用程序的活动已暂停。
APP_CMD_STOP-来自主线程的命令:应用程序的活动已停止。
APP_CMD_DESTROY-来自主线程的命令:正在销毁应用程序的活动,并等待应用程序线程清理并退出后再继续。
我想我在这本书中看到了一些关于这方面的内容http://www.packtpub.com/android-ndk-beginners-guide/book.但也可能是错误的。其中肯定有一章是关于创建一个完全本地的活动,循环处理所有这些状态。
- Makefile g++ 使用命令行中的 -D 变量进行编译,默认值
- 在命令行中创建快捷命令
- 打印从SQLite3数据库检索的数据C++与命令行中相同的方式
- 添加符号 libgtest.so 错误:命令行中缺少 DSO
- libstdc++.so.6:添加符号时出错:命令行中缺少 DSO
- 如何使用 c++ 在命令行中创建一个简单的字符控制器?
- 如何在窗口上的命令行中读取输入 .in 文件
- 在 Windows 命令行中运行.exe在使用 2 种相同方式执行时会产生不同的输出
- 当命令行中使用DShow时,CreateProcess失败
- C++ - 代码在Visual Studio中完美运行,但命令行中的.exe不断崩溃
- 我可以在命令缓冲区中多次记录 vkCmdPipelineBarrier 吗?
- 在Windows命令提示符中使用G 编译C 程序
- 如果键入了单词 "exit",如何在命令 promt 中进行此退出?
- std::cin 无法将命令行中的用户输入传递给具有 char 类型的变量吗?
- 音频编程 SDL - 如何使用 wav 文件在命令行中指定频率切割
- 在Visual Studio调试命令参数中逃脱
- mingw在命令行中使用G 而不是C
- 代码没有任何错误,但什么也不在命令提示中
- 如何在IDE中而不是在命令提示符中显示Visual Studio控制台应用程序输出
- 处理android原生活动中的主要命令