2012-12-07 2 views
0

질문 문구를 올바르게 작성하는 방법을 모르므로 설명해 드리겠습니다. 안드로이드 플랫폼에서 하나의 활동에서 두 개의 버튼을 빠르게 누르면 (하나의 버튼을 누른 후 다른 버튼을 누르면 화면을 벗어날 수있는 기회가 있음) 두 개의 활동이 차례로 호출된다는 사실을 알게되었습니다. 발생하는 동안 보이지 않지만 뒤로 단추를 누르면 두 번째 단추로 호출 된 활동이 종료 (완료)되고 첫 번째 단추로 호출 된 활동이 표시됩니다. 다시 활동 활동으로 돌아가려면 다시 가야합니다. 따라서 활동 2의 부모 활동을 시작하려면 두 번 뒤로 가야합니다.순서대로 두 개의 버튼에서 두 가지 활동을 호출하는 것이 정상입니까?

그래서 다른 사람들에게 이것이 문제가되는지 알고 싶습니다. 그렇다면 어떻게 수정해야할까요? 아니면 이것이별로 문제가 아니라고 생각합니까?

답변

0

이 문제를 해결하는 방법을 알아 냈습니다. 내 응용 프로그램의 모든 다른 활동이 상속하는 기본 활동 클래스가 있습니다. 와

@Override 
protected void onResume() 
{ 
    super.onResume(); 
    setCanStartNewActivity(true); 
} 

과에 startActivityForResult : 나는 함께

onResume를 오버라이드 (override)이 기본적으로 확실히 하나의 새로운 활동이 버튼을 누를 때 시작될 수 있습니다

@Override 
public void startActivityForResult(Intent intent, int requestCode) 
{ 
    //Does not allow starting a new activity unless previous activity returned 
    //This is a trick to stop multiple simultaneous button presses starting multiple 
    //activities simultaneously. 
    if(!canStartNewActivity) 
     return; 
    setCanStartNewActivity(false); 
    super.startActivityForResult(intent, requestCode); 
} 

. 두 개의 버튼을 동시에 놓아두면 (가장 최근에 릴리스 된 버튼은 10 마이크로 초까지만) 해고되고 다른 버튼은 의도를 전송하지만 첫 번째 해고 활동이 반환되거나 앱이 종료 될 때까지는 실행되지 않습니다.

0

다음에 startActivity(your_intent); 후에 전화를 걸면 퇴장하려는 활동이 끝나고 다음 활동으로 넘어갈 수 있습니다. 따라서 부모 활동으로 돌아가려면 두 번 뒤로 누르지 않아도됩니다.

+1

죄송합니다. 내가 말하고자하는 것을 오해했을 수 있습니다. 나는 2 개의 버튼이있는 가정 활동을하고있다. 나는 버튼 1을 클릭 한 다음 정말로 빠르게 버튼 2를 모두 집에서 클릭합니다. 그런 다음 버튼 2에 대한 활동을 표시합니다. 뒤로 버튼을 누르면 버튼 1로 호출 된 활동으로 이동합니다. 따라서 두 번째 호출 된 활동은 첫 번째 호출 된 활동에서 호출되지 않았지만 동시에 집에서 호출되었습니다. – Raigex

+0

활동이 스택에 보관됩니다. 따라서 뒤로 버튼은 실제로 첫 번째 버튼에서 호출 된 마지막 버튼을 팝합니다. – Pavlos

+0

예, 알고 있습니다. 제 질문은이게 정말 나쁜 것 같아요. 그들이 2 개의 버튼을 빠르게 클릭하고 뒤로 버튼이 기대하는 것을하지 않으면 앱에서 사용자를 끌 것인가? – Raigex

관련 문제