我正在尝试在 Android 上使用简单的 SDL2 制作一些项目。
我首先尝试编译存档中给出的示例tesgesture.c
,您可以在此处查看代码。
它在我的 Android 手机上运行良好,但每当我暂停应用程序(启动另一个,无论如何),当我恢复它时,应用程序冻结并停止响应(我认为这是因为我们还没有返回 SDL 线程)。
我发现这是一个常见问题,但没有找到任何明确的解决方案。
我尝试应用此补丁并将这些事件添加到我的开关:
case SDL_SYSEVENT_TERMINATE:
case SDL_SYSEVENT_SUSPEND:
case SDL_SYSEVENT_RESUME :
case SDL_SYSEVENT_WILL_RESUME :
case SDL_SYSEVENT_WILL_SUSPEND:
但它不会改变任何东西。
我还看到,当应用程序置于后台时,事件似乎SDL_WINDOWEVENT_MINIMIZED
是SDL_WINDOWEVENT_FOCUS_LOST
发送的,所以我测试了:
case SDL_WINDOWEVENT:
if (event.window.event == SDL_WINDOWEVENT_MINIMIZED ||
event.window.event == SDL_WINDOWEVENT_FOCUS_LOST) {
SDL_Quit();
return 1;
}
break;
没有更多的成功。
那么有人知道如何捕捉这些事件吗?