2012-09-30 2 views
1

나는 세 가지 활동, a, b, c이 있습니다. 활동 b은 활동을 시작합니다 c. 활성 C에서 난은 다시 키 활성 C가 B 그것이 방치대로 표시한다 완료() 및 활성 누르면 것이다. 내가 활동에게를 표시하기 위해 같은 시간에() 활동 B을 완료 할,() 활동을 C을 완료 할 때Android 액티비티 원격 완료

그 어려운 일이 아니다

은, 내가 뭘 걸려 라하는 것입니다.

다른 활동에서 활동을 완료하는 방법에 대해 알고있는 사람이 있습니까?

답변

1

이 가장 좋은 방법을 달성하기 startActivityForResult와 onActivityResult를 결합하여 사용하는 것입니다.

활동 A로부터

,에 startActivityForResult를 사용하여 결과()에 대해 B 개시 활동 C에서 다음 활성 B를 시작

활동 C에서

, 사용자는 다시 트리거 또는

는 결과 집합) (파괴 그 B는 C에서 그 결과를 받으면 C.

에서,뿐만 아니라 마무리

통화 마무리() 알릴 것, B뿐 아니라 자체 마무리()를 호출한다. 자식 활동을 유발하면서 부모 활동에서

는 다음 명령을 사용합니다 -

startActivityForResult(intent,variable(int)); 

및 활동 B에서 다음과 같은 방식으로하여 onActivityResult 메소드를 오버라이드 (override) : -

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(resultCode==2){ 
     finish(); 
    } 
} 

지금 하위 작업 C에서 onStop 및 onDestroy를 다음과 같이 재정의합니다. -

protected void onStop() { 
    setResult(2); 
    super.onStop(); 
} 

@Override 
protected void onDestroy() { 
    setResult(2); 
    super.onDestroy(); 
} 
+0

Thanks, Worked well. –

0

당신이 직접이 follwong 코드와 같은 활동 A를 이동합니다 ACK 버튼을 클릭하면 예, 활동에 이동하기 전에 C는, 그래서 다음 번에 활동 B. 마무리 :

 Intent in = new Intent(B.class, C.class); 
     startActivity(in) 
     finish(); 
+0

내가하고 싶은 일은 뒤로 버튼에 활동 B를 표시하고 확인 버튼에 활동 A를 표시하는 것입니다. –

+0

위의 코드에서 Back Button을 클릭하면 Activity C –

+0

에서 직접 Activity A로 리디렉션되며 finish(); Activity C를 누르면 Back Button을 클릭하고 그렇지 않으면 Exceptions를 얻을 수 있습니다 –