안드로이드 액티비티를 처음에 쌓아 실행해도 되나요?

조회수 643회

표현이 이상한건지 모르겠지만, 자세하게 설명드리자면

액티비티 1,2,3이 있을 때, 처음 앱을 실행하여 1,2,3 액티비티 모두 onCreate()를 수행하고 싶습니다.

여러 방면으로 찾아보았으나 화면을 안띄우면 onCreate()를 할 수 없었습니다.

그래서 생각한 것이 1 생성 후 intent로 2생성, intent로 3 생성을 하여 액티비티를 쌓아 놓는 것이였습니다.

이럴 경우 Back키를 누를 시 3 >2 >1 로 화면이 변경되겠지만, onBackPressed로 따로 처리해 주려고 합니다.

하지만 걱정인 부분은 이렇게 미리 해놓으면 메모리적이나 기타 이상현상이 생기지 않을까 걱정입니다.

조언이 필요합니다.

※틀린부분이 있으면 말씀해주세요!

1 답변

  • 좋아요

    2

    싫어요
    채택 취소하기

    해당 Activity 들이 각각 어떤 UI 와 어떤 작업을 하는지에 따라 달라질것 같습니다. 일반적인 상황은 아니지만 큰 문제는 없을 것 같습니다. 어떤 부분 때문에 말씀하신 부분처럼 처리하려고 하는지 알려주시면 좋을것 같습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 답변 감사드립니다 :) 1번 액티비티는 구글맵에 GPS를 이용하여 발자취를 남기는 액티비티이고, 2번 액티비티는 시작,중단 버튼이 있는 액티비티 입니다. 하지만 저는 2번 액티비티만 보여주고 싶고, 1번액티비티는 중단을 눌렀을 경우 보여주고 싶습니다. 하지만 액티비티를 중첩하지 않는다면 중단을 눌러야만 1번 액티비티가 onCreate가 되어 하나도 발자취를 남기지 못한다고 생각합니다. 물론 발자취를 저장하여 추후에 그리는 방법도 있지만, 시간이 오래될 수록 데이터는 많아져 비효율적이라 생각합니다. 즉 한마디로 실시간으로 발자취를 그리기위해 액티비티를 쌓아야 한다고 생각했습니다. 혹시 다른 좋은 방법이 있을까요?. 심승현 2018.7.17 20:13
    • 하지만 앱이 home키 등으로 foreground 상태에서 오래동안 있으면 os 에서 메모리 관리를 위해 각 레퍼런스들이 삭제되어 앱 복귀 시 별도의 처리가 되어있지 않다면 비정상적인 동작이 되는 경우가 있습니다. onSavedInstanceState(), onRestoreInstanceState() 와 관련 된 얘기 인데, 물론 이 시나리오를 무시한다면 상관 없겠지만 대응을 해야 한다면 어딘가에 기록 된 데이터를 저장하고 있어야 하지 않을까요? 물론 개인적인 생각입니다 :) 알 수 없는 사용자 2018.7.19 10:54
    • 답변 감사합니다 :) 저도 찾아보니 말씀하신 문제가 생긴다는 것을 알게 되었습니다. 지적해주신 부분을 잘 생각하여 처리해 보도록 하겠습니다. 감사합니다. 심승현 2018.7.19 21:48

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)