안드로이드 개발 질문/답변
(글 수 45,052)
예를 들어 A라는 액티비티에서 startActivity() 메서드로 B라는 액티비티를 실행했다 치구요.
A라는 액티비티 영역에서 쓰레드 등으로 B라는 액티비티를 종료 할 수 있나요?
B 액티비티가 A 액티비티에게 데이터를 통신하는 방법은 가능하다고 알고 있는데.. 역으로 통신을 해야하는 상황이 생겼는데 해답이 안나오네요.
=========================================================
위 질문이 명확하지 않은것 같아서.. 다시 설명이요..
A / B 두 액티비티가 있다고 가정하고,
A가 B를 startActivity() 해서 B에게 가려진 상태에요. (A가 종료된 상태가 아니에요.. finish 하지 않은 상황..)
그리고 A는 startActivity() 를 수행하기 전에 쓰레드를 돌려논 상태입니다.
이 상황에서 A쓰레드 내부 로직상에서 B를 종료할 수 있는가 하는게 제 질문의 요점이구요.
2012.10.30 09:58:40
질문부터가 불명확하니 제대로 된 답변이 달릴 수가 없죠 -_-;
B에서 어떤 값을 받아야된다면
startActivitywithResult 를 사용해보세요
B 액티비티에서
Intent returnIntent = new Intent(); setResult(RESULT_CANCELED, returnIntent); finish();
와 같은 형식으로 리절트를 세팅하고 finish 하면
A액티비티에서 리절트 값을 받아 처리할 수 있습니다.protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { if(resultCode == RESULT_OK){ String result=data.getStringExtra("result"); } if (resultCode == RESULT_CANCELED) { //Write your code on no result return } }//onAcrivityResult
이렇게요




broadcast 로 A activity에서 종료 이벤트를 보내고, B activity에서 broadcast receiver로 이 이벤트를 받아 종료 하는 방식으로 하시는게 어떻까요?