8

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

在我阅读时,为了改变“后退”按钮的行为,我需要重写onBackPressed()Java 活动类的方法。但是我不使用Java,我可以从C/C++ 中使用这个方法来覆盖它吗?

如果不是,是否有另一种方法可以使用 NDK 处理“后退”按钮,而不需要 Java 代码?

4

1 回答 1

17

已解决:为了防止默认的“返回”按钮行为,在处理关键事件时返回 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;
}
于 2012-08-27T02:13:04.453 回答