안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요. 안드로이드 채팅을 만들고 있는데요 .
처음 실행하게되면 A라는 액티비티가 시작됩니다.
A 액티비티에서는 단순히 대화명만 받고 startActivity호출하여 B라는 액티비티를 호출하구요.
B액티비티에서는 쓰레드 사용하여 소켓으로 서버에 연결하여 채팅하는 액티비티인데요.
B액티비티상태에서 강제종료 후 다시 어플을 시작하면 A액티비티부터 시작이 되지않고 B액티비티부터 나옵니다.
왜 B액티비티부터 실행되는지와 A액티부터 나오게 해결방법 좀 알려주세요 ㅠㅠ
2011.01.27 17:33:10
일단 증상을 파악해보자면, B Activity 실행 중...
상태1. 디바이스의 홈 버튼이나 전원 버튼, 다른 앱이 치고 들어와서 실행 중인 App이 뒤로 가려지는 경우 정지 상태가 됩니다.
(전원 버튼: onPause, 홈 버튼 & other App: onStop)
당연히, 다시 App을 실행시키면 B Activity 부터 나옵니다.
상태2. 상태 1의 상황에서 메모리가 부족하면 시스템이 자동으로 App을 프로세서까지 종료시킵니다.
단, App의 상태를 저장합니다. 다시 App을 실행시키면 저장된 App의 정보로 시작합니다.
그래서 B Activity가 나옵니다.
이것 말고는 모르겠습니다.
일단 기본적으로 A Activity → B Activity 로 전환하셨으면 App의 종료는 A Activity 에서 하셔야 합니다.
물론 B Activity 에서 finish() 하시기 전에 A Activity를 종료시키시고 finish() 하시면 App이 종료됩니다.




B액티비티에서 처음에 A액티비티를 호출하도록 해보세요