2012-10-15 3 views
1

Android 기기를 개발 중이며 기기에서 뒤로 버튼을 누르면 (1 초 미만의 사람이 정상적으로 누르면됩니다) 내 활동에서 이전 활동으로 건너 뜁니다. (메뉴)를 선택하고 응용 프로그램을 종료합니다. 그러나 뒤로 버튼을 빠르게 누르면 예상대로 반응하고 메뉴로 이동합니다. 나는 해결책을 찾지 만 성공하지는 못했습니다. 저는 항상 뒤로 버튼 기본 동작을 무시하려고했지만 성공하지 못했습니다. 뒤로 버튼이 반응하는 반응 시간을 설정하는 방법이 있습니까?Android Back Button이 너무 빨리 반응합니다.

미리 감사드립니다.

P.S.- 정상적인 프레스 시간으로 누르면 뒤로 버튼에 예상되는 동작을 유지하는 다른 활동이 있습니다.

+1

백 프레스를 처리하는 코드를 게시 해주십시오. – Heskja

+1

그 것이지, 뒤로 버튼에는 내가 원하는 기본 동작이 있기 때문에 뒤로 키 누르기를 처리하지 않습니다. –

+0

활동을 시작하는 코드 부분을 보여줄 수 있습니까? 다른 장치에서이 동작을 테스트 해 보셨습니까? – Heskja

답변

1

이미 존재하는 응용 프로그램에 대한 추가 옵션을 개발 중이 었는데, 이 아닌이 아닌 Android의 Activity에서 확장되지만 SEActivity라는 이미 확장 된 Activity에서 확장해야한다는 것을 알았습니다. 그래서 활동의 확장 버전이이 같은 방법을 onKeyDown에 오버라이드 (override) :

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     return true; 
    } 
    else 
     return super.onKeyDown(keyCode, event); 
} 

을이 SEActivity을 확장함으로써, 뒤로 버튼 예상되는 동작으로 작동합니다. 어쨌든 고마워요.

1

"뒤로 버튼이 반응하는 반응 시간을 설정하는 방법이 있습니까?"

예, 당신은 당신이에 startActivityForResult로 활동을 요청할 수 있습니다, 버튼을 누를 때 단순히 시간을 기록하고

이 이전 활동과 함께 작업 할 수있게하려면 (currentTime을-lastTimePressed)를 계산하여 onBackPressed 다르게 반응 할 수 그래서 활동을 마칠 때도 빠져 나가야하는지 알 수 있도록 시간을 보낼 수 있습니다.

+1

뒤로 버튼을 눌렀을 때 실제로 조치가 취해질 때까지 응답 시간이 지연되는 이유는 무엇입니까? 코드에 문제가있을 수 있으므로 나쁜 코드와 나쁜 디자인에 대한 격려는 좋지 않습니다. – Heskja

+1

이것은 최고의 패턴이 아닙니다. 하지만 두 버튼 사이의 시간을 알고 싶을 때를 보게됩니다. 또한 내 이해는 응답 시간을 지연시키지 않고 버튼을 누른 시간에 따라 다르게 반응하기를 원한다는 것입니다. – Edison

+1

@ 에디슨 내 현재 활동의 뒤로 버튼이 내 활동뿐만 아니라 이전 활동 (이 경우 메뉴)을 되돌릴 수 있기 때문에 실제로 응답 시간을 지연시키고 싶습니다. 계층 구조는 ** App> Menu> 고객 로고 **입니다. ** 고객 로고 **를 다시 클릭하면 ** 메뉴 **까지 한 수준 만 돌아가야하지만 사실 ** 앱 **으로 이동하여 닫습니다. ** 메뉴 **를 다시 누르면, 나는 그렇지 않았다. –

관련 문제