2012-08-26 6 views
7

Meine App ist vollständig in C/C++ mit NativeActivity geschrieben, es hat keinen Java-Code (basierend auf "native-activity" NDK-Beispiel). Drücken Sie die "Zurück" -Schaltfläche schließt es (zerstört Aktivität), aber ich brauche andere behavior dieser Taste, weil ich meine eigene Benutzeroberfläche und Menüs, die über OpenGL angezeigt werden.Android NDK: Wie überschreibt OnBackPressed in NativeActivity ohne Java?

As I read, Um behaivor von "Zurück" -Button zu ändern, muss ich onBackPressed() Methode der Java-Aktivitätsklasse überschreiben. Aber ich benutze Java nicht, kann ich diese Methode von C/C++ erreichen, um es zu überschreiben?

Wenn nein, gibt es eine andere Möglichkeit, mit "Zurück" -Taste mit NDK, ohne Java-Code umgehen?

+0

Native ist eine Java-Klasse !! und du hast gesagt, du benutzt es !!, damit du onBackPressed darin überschreiben kannst? –

+0

Nein, ich meine, ich benutze es wie in "native-activity" NDK Beispiel: android_native_app_glue.h, 'struct android_app' usw. –

Antwort

12

Gelöst: default "Zurück" -Taste, um zu verhindern behaivor es ist genug 1 zurückzukehren, während Schlüssel-Event-Handling:

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