안드로이드 manifests에 launcher 로 등록된 activity 가 동작 안하는 현상 아시는 분 계신가요?

조회수 3034회

안녕하세요 선배님들 전혀 감을 잡을 수가 없어 여기에 질문을 올립니다.

현재 상황은 기존 구글 플레이 스토어 앱이 등록되어 있었구요 대규모 패치로 인해 기존 앱과는 전혀 다른 앱으로 업데이트를 하였습니다. (패키지명은 같지만 안에 소스코드 자체가 틀림)

무사히 구글 스토어에 업데이트도 완료 되었지만 manifest에 등록한 launcher로 등록한 StartActivity가 동작하지 않고 바로 HomeActivity로 진입하는 현상이 일어났습니다.

/<activity android:name=".StartActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar.Yellow"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".HomeActivity" android:screenOrientation="portrait" android:launchMode="singleTask"/>/

앱을 삭제하고 다시 설치하면 제대로 launcher로 등록된 StartActivity를 제대로 타기는 합니다만 업그레이드 단말은 왜 launcher로 등록된 StartActivity 타지 않는지 원인을 알고 싶어 질문드립니다.

설명이 부족 했는지는 모르겠지만 아시는 분이 계시다면 답글로 알려주시면 감사하겠습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 런처 바로가기 아이콘의 정보가 제대로 업데이트 되지 않아서 발생하는 현상으로 보입니다. 런처가 바로가기 아이콘을 생성할 때, ComponentName(패키지명 + 액티비티명)을 기반으로 자체 데이터베이스를 구성하는데 이 정보가 StartActivity가 아닌 기존의 HomeActivity로 남아 있는걸로 추측됩니다.

    대개 진입 액티비티가 변경되는 경우, 런처에서 이를 처리를 해주는 것이 맞지만 이 부분에 대한 가이드라인이 없기 때문에 런처 별로 처리 방식이 제각각입니다. 런처의 문제인지 확인해보고 싶다면 기존의 바탕화면 아이콘이 아닌 앱 서랍(목록)의 아이콘을 클릭해서 실행해보세요. 이 때 잘 동작한다면 해당 런처가 바탕화면의 바로가기 정보를 제대로 업데이트 하지 않아서 발생하는 문제가 맞습니다. 이런 경우, 사용자에게 바로가기 아이콘을 새로 설치하라는 가이드를 하는게 방법 중 하나일 것 같습니다. (기존의 바로가기 아이콘은 삭제)

    사실 진입 액티비티가 변경되는 것이 빈번한 일은 아닙니다만 이런 경우를 대비해서 activity-alias라는 것을 사용할 수 있습니다.

    그런데 지금의 경우는 이미 진입 액티비티를 수정한 업데이트가 배포됐기 때문에 위 방법으로 후속 조치를 하기는 어려운 상황으로 보이고요. 앞으로도 비슷한 일이 발생할 것 같다면 activity-alias를 사용해보세요.

    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)