2011-02-14 8 views
1

Basiclly 현재 2 개의 화면이 있습니다. 질문 및 답변 화면. 질문 화면에있는 대답을 클릭하면 답변 화면으로 이동하여 올바른지 알려줍니다. 다음 부분은 해당 화면에서 질문 화면으로 돌아가고 다른 질문을하게됩니다. 현재이 작업은 많은 새로운 활동을 만들어 내고 쉽게 벗어날 수 있습니다. 내가 필요한 것은 질문 활동이 3 단계로 내려가고 그것을 멈출 때를 아는 것입니다. 기본적으로 이유 화면에서 질문을보기 위해 되돌아 갈 수 있지만 새로운 질문을 할 때는 이전 및 이유 페이지를 제거해야합니다.활동 스택에서 활동 위치 찾기

어떻게하면됩니까?

답변

1

Answer Activity에서 this.finish()를 호출하면 질문 활동으로 돌아갑니다. 그리고 질문 활동에서 startActivityForResult로 AnswerActivity를 시작하십시오. 그러면 응답이 완료되면 질문 활동에 통지되어 새로운 질문 등을 표시 할 수 있습니다. 그러면 각 AnswerActivity가 삭제됩니다. 도움이 필요하면 코드 샘플을 게시하십시오. 이런 식으로 설계한다면 스택에서 활동을 찾을 필요가 없습니다.

질문 활동

this.startActivityForResult(Intent, requestCode); // somewhere in your code to launch the Answer Activity 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // now we have returned from the AnswerActivity and it has been destroyed 
    // do any processing here on the answer or show a new question. 
} 

대답 활동

public void onBackClick(View v) { 
    //on click handler for a back button or something. 
    this.setResult(resultCode, Intent /* some data to give back to parent */); 
    this.finish(); 
} 
+0

감사를 작동하지 않습니다. 참조 할 수 있도록 모든 코드 스 니펫을 게시 할 수 있습니까? 나는 이것 모두에 아주 새다. – Somk

+0

코드 샘플을 추가하도록 업데이트 됨 –

0

내가 프레임 워크에서 직접이 작업을 수행하는 방법을 알고하지 않습니다,하지만 당신은 (내가 생각하는) 수동으로 할 수 있습니다. 질문 활동의 작업 ID를 나타내는 응용 프로그램 수준에서 정수 목록을 유지 관리 할 수 ​​있습니다. Activity가 시작될 때마다 getTaskId()의 값을이 목록으로 푸시합니다. 활동을 실행하는 코드에서 질문 활동이 응답하는 의도를 브로드 캐스트 할 수 있습니다. getTaskId 값이 목록의 특정 위치에 있으면 작업에 finish()를 호출하고 해당 작업 ID를 목록에서 제거 할 수 있습니다.

이것은 매우 해키 솔루션이지만, 지금까지 내가 경험했던대로, singleTop launchMode는 빠른 responce에 대한