2011-11-11 49 views
28

Làm thế nào để bắt sự kiện với nút quay lại phần cứng trên Android? Tôi cần phải ngăn chặn người dùng quay lại và tôi khi nhấp vào nút quay lại trên điện thoại để hiển thị tin nhắn và không tiếp tục hoạt động trước đó. Làm thế nào để làm điều đó ?Làm thế nào để bắt sự kiện với nút quay lại phần cứng trên Android?

+4

-1 Tìm kiếm trước khi hỏi, điều này đã được bảo hiểm ít nhất một lần mỗi tuần. –

+0

Bản sao có thể có của [Vô hiệu hóa nút quay lại trong android] (http://stackoverflow.com/questions/4779954/disable-back-button-in-android) –

Trả lời

53

bạn có thể làm bằng cách

  1. override này phương thức onBackPressed() vào Hoạt động của bạn theo cách này

    public void onBackPressed(){ 
        // do something here and don't write super.onBackPressed() 
    } 
    
  2. override phương pháp onKeyDown()

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        switch(keyCode){ 
        case KeyEvent.KEYCODE_BACK: 
         // do something here 
         return true; 
        } 
        return super.onKeyDown(keyCode, event); 
    } 
    
+0

Có thực sự cần thiết để ghi đè 'onKeyDown()' không? Khi nhấn phím quay lại, sẽ không gọi 'onBackPressed()'? – LarsH

0

Bạn có thể ngăn chặn người sử dụng "trở lại" hành động với onKeyDown() trong hoạt động của bạn như thế này:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) 
    { 
     //do actions like show message 
     return false; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
Các vấn đề liên quan