История изменений
Исправление EXL, (текущая версия) :
В обёртке main в файле src/main/android/SDL_android_main.c, которую ты компилируешь и линкуешь в свою so-шку, есть такое:
...
/* Run the application. */
status = SDL_main(argc, argv);
/* Release the arguments. */
for (i = 0; i < argc; ++i) {
SDL_free(argv[i]);
}
/* Do not issue an exit or the whole application will terminate instead of just the SDL thread */
/* exit(status); */
return status;
...
Теперь приложение нормально закрывается при нажатии на кнопку «Назад». Однако после этого оно отказывается запускаться, пока не смахнёшь его из списка недавних приложений.
У меня вроде была похожая проблема. Насколько я помню, помимо выхода из event loop нужно вызывать ещё SDL_Quit() перед return.
Но, насколько я понимаю, это очень криво с точки зрения Android.
Для нативных приложений это норм, иначе библиотека остаётся висеть в памяти и при следующем запуске оно либо не запустится, либо запустится с различными лагами, по-крайней мере так было у меня.
Исправление EXL, :
В обёртке main в файле src/main/android/SDL_android_main.c, которую ты компилируешь и линкуешь в свою so-шку, есть такое:
...
/* Run the application. */
status = SDL_main(argc, argv);
/* Release the arguments. */
for (i = 0; i < argc; ++i) {
SDL_free(argv[i]);
}
/* Do not issue an exit or the whole application will terminate instead of just the SDL thread */
/* exit(status); */
return status;
...
Теперь приложение нормально закрывается при нажатии на кнопку «Назад». Однако после этого оно отказывается запускаться, пока не смахнёшь его из списка недавних приложений.
У меня вроде была похожая проблема. Насколько я помню, помимо выхода из event loop нужно вызывать ещё SDL_Quit() перед return.
Исходная версия EXL, :
В обёртке main в файле src/main/android/SDL_android_main.c, которую ты компилируешь и линкуешь в свою so-шку, есть такое:
...
/* Run the application. */
status = SDL_main(argc, argv);
/* Release the arguments. */
for (i = 0; i < argc; ++i) {
SDL_free(argv[i]);
}
/* Do not issue an exit or the whole application will terminate instead of just the SDL thread */
/* exit(status); */
...
Теперь приложение нормально закрывается при нажатии на кнопку «Назад». Однако после этого оно отказывается запускаться, пока не смахнёшь его из списка недавних приложений.
У меня вроде была похожая проблема. Насколько я помню, помимо выхода из event loop вызывать ещё SDL_Quit().