2012-08-26 24 views
7

Ứng dụng của tôi được viết hoàn toàn bằng C/C++ sử dụng NativeActivity, ứng dụng này không có mã Java (dựa trên ví dụ NDK "hoạt động gốc"). Nhấn "back" nút đóng nó (phá hủy hoạt động), nhưng tôi cần behaivor khác của nút này bởi vì tôi có giao diện người dùng và menu của riêng tôi được hiển thị thông qua OpenGL.Android NDK: Cách ghi đè lênBackPressed trong NativeActivity mà không cần java?

As I read, Để thay đổi cách xử lý của nút "quay lại", tôi cần ghi đè phương thức hoạt động Java onBackPressed(). Nhưng tôi không sử dụng Java, tôi có thể tiếp cận phương pháp này từ C/C++ để ghi đè lên nó không?

Nếu không, có cách nào khác để xử lý bằng nút "quay lại" sử dụng NDK, không có mã java không?

+0

NativeActivity là một lớp Java !! và bạn nói bạn đang sử dụng nó !!, vì vậy bạn có thể ghi đè lên BackPressed bên trong nó? –

+0

Không, ý tôi là tôi đang sử dụng nó như trong ví dụ NDK "hoạt động gốc": android_native_app_glue.h, 'struct android_app', v.v. –

Trả lời

12

quyết: để ngăn chặn mặc định "Back" nút behaivor nó là đủ để trở về 1 trong khi xử lý sự kiện quan trọng:

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; 
} 
Các vấn đề liên quan