Android NDK:如何在没有Java的情况下覆盖NativeActivity中的onBackPressed?

Rom*_*lov 7 android native-code android-ndk

我的应用程序完全用C/C++编写NativeActivity,它没有Java代码(基于"本机活动"NDK示例).按"后退"按钮将其关闭(破坏活动),但我需要此按钮的其他行为,因为我有自己的UI和通过OpenGL显示的菜单.

在我读到的时候,为了改变"后退"按钮的行为,我需要覆盖onBackPressed()Java活动类的方法.但我不使用Java,我可以从C/C++中获取此方法来覆盖它吗?

如果没有,是否有其他方法使用NDK处理"后退"按钮,没有Java代码?

Rom*_*lov 13

解决:为防止默认"后退"按钮行为,处理键事件时返回1就足够了:

int32_t app_handle_event(struct android_app* app, AInputEvent* event) {
    if (AKeyEvent_getKeyCode(event) == AKEYCODE_BACK) {
        // actions on back key
        return 1; // <-- prevent default handler
    };
    // ...
    return 0;
}
Run Code Online (Sandbox Code Playgroud)