我正在尝试使用Android上的SDL2制作一些项目。
我首先尝试编译归档tesgesture.c
中给出的示例,您可以看到the code here。
它在我的Android手机上工作正常,但每当我暂停应用程序(启动其他任何东西)时,当我恢复它时,应用程序冻结并停止响应(我认为因为我们没有回到SDL线程)。
我发现这是一个常见问题,但没有找到任何明确的解决方案。
我尝试应用this patch并将这些事件添加到我的交换机:
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;
没有太多成功。
那么有人知道如何捕捉这些事件吗?