마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

명시적 인텐트 문제 입니다.

0 추천
1.메인 액티비티에서 서브엑티비티로 값을 넘겨준후에

서브엑티비티에서 finish();를 넣지 않으면 에러가 뜨나요??

2.제가 공부하는 책에는 전부 서브엑티비티 메인안에 finish();가 있는데

버튼 밖으로 빼면 문제가 생기나요?

 

제가 직접 돌려보고싶지만 현재 메인에서 서브엑티비티로 값을 넘겨주질 못하네요 ㅠㅠ

정말 공부할것이 많네요..
얼상 (430 포인트) 님이 2013년 6월 7일 질문

2개의 답변

+1 추천
 
채택된 답변
예를 들어 A 액티비티에서 B 액티비티로 넘어가는 로직을 꾸민다면,

Intent it = new Intent(getApplicationContext, BActivity.class);

startActivity(it);

이런식으로 구현이 되겠지요.. 여기서 finish()를 하게되면, A액티비티는 onDestroy 됩니다.

만약, finish 하지않고 B액티비티로 넘어가서 다시 B -> A 로 intent 할때, B액티비티를 FINISH 하면 B 액티비티는

사라지고, 아까 A액티비티가 남아있겠죠.

finish는 액티비를 onDestory 하는 문법입니다.
안드로메다개발자 (8,830 포인트) 님이 2013년 6월 7일 답변
얼상님이 2013년 6월 7일 채택됨
아 finish는 B액티비티를 종료하기위한 메소드 정도로
생각하면 되겠군요? 그렇다면 B액티비티를 종료하지 않고
A액티비티로 돌아갈일이 없으면 finish를 사용하지 않아도 되겠네요??
B액티비티를 종료하지 않으시면 FINISH 안하셔도 되는데요..
A -> B 로 가셨을때 A를 FINISH 하지않으시면 STACK이 쌓여서 나중에 백키로 뒤로가기 등 했을경우, 액티비티가 죽지 않고 살아있습니다. 돌아가는 루트를 잘생각하시고, 액티비티를 죽여야 하는건지 백그라운드에 두어야 할지는 질문자님 마음아닐까요?^^
아 그렇군요.. 상세한답변 감사드립니다 ^^
+1 추천

1.메인 액티비티에서 서브엑티비티로 값을 넘겨준후에
서브엑티비티에서 finish();를 넣지 않으면 에러가 뜨나요??

-> 단순히 finish() 를 서브액티비티에 넣지 않았다고 해도 에러는 뜨지 않습니다.


2.제가 공부하는 책에는 전부 서브엑티비티 메인안에 finish();가 있는데
버튼 밖으로 빼면 문제가 생기나요?


 -> 버튼밖으로 빼셔도 상관없습니다. 

제가 직접 돌려보고싶지만 현재 메인에서 서브엑티비티로 값을 넘겨주질 못하네요 ㅠㅠ
정말 공부할것이 많네요..

Gradler (109,780 포인트) 님이 2013년 6월 7일 답변
답변 감사드립니다 ^^ finih()에 대해 확실히 알았습니다 ㅎ
...