2012-08-26 19 views
7

Moja aplikacja jest napisana w całości w języku C/C++ przy użyciu NativeActivity, nie ma kodu Java (w oparciu o przykład NDK "natywna aktywność"). Naciśnięcie przycisku "wstecz" zamyka go (niszczy aktywność), ale potrzebuję innego uroku tego przycisku, ponieważ mam własny interfejs i menu wyświetlane przez OpenGL.Android NDK: jak zastąpić onBackPressed w NativeActivity bez java?

As I read, Aby zmienić funkcję przycisku "Wstecz", należy zastąpić metodę klasy Java klasy onBackPressed(). Ale ja nie używam Javy, czy mogę osiągnąć tę metodę z C/C++, aby ją przesłonić?

Jeśli nie, czy istnieje inny sposób obsługi za pomocą przycisku "wstecz" przy użyciu NDK, bez kodu Java?

+0

NativeActivity jest klasa Java !! i powiedziałeś, że go używasz !, więc możesz zastąpić onBackPressed w nim? –

+0

Nie, chodzi mi o to, że używam go jak w przykładzie NDK z natywną aktywnością: android_native_app_glue.h, 'struct android_app' itd. –

Odpowiedz

12

rozwiązany: aby zapobiec domyślne "Powrót" przycisk behaivor to wystarczy, aby powrócić 1 podczas obsługi kluczową wydarzenie:

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; 
}