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

안드로이드13 대응과 스위치버튼

0 추천
안드로이드13 대응중인데 저희 앱 내의 스위치 버튼으로 푸시를 킬경우 앱 자체의 알람을 꺼놓은 상태면 앱 자체의 설정으로 보내버려서 키게하는데요. 앱 설정에서 알람을 한번만 설정하고 돌아오면 정상동작하는데 앱설정에서 스위치를 2번이상 동작하는경우 on이던 off던 다시 앱으로 돌아왔을때 저희 앱의 스위치를 눌러도 on/off 동작을 안합니다 아시는분계실까요? setOnUnCheckedBlockListener에 로그찍어보면 정상적으로 타고 있는데 on/off동작이 안되고 그냥 스위치가 꺼져있는상태에서 움직이질 않습니다
수원통학러 (3,570 포인트) 님이 2022년 9월 6일 질문
Android 13에서는 시스템 설정을 두번이상 동작하게 되면 다시 시스템 설정을 띄울 수 없다는 이야기이신가요?
아뇽 앱 시스템 설정 두번 이상 동작시 저희 앱에 onresume을 다시타는데 싱글턴 클래스에 저장된것들이 다날라갑니다 뷰모델도 그렇구요 한번 하면 문제없는데 두번 스위치 동작 또는 앱시스템 설정권한 스위치 한번동작후 돌아오면 문제없는데 또 한번 하려고 들어가면 그땐 또 날라가요 따로 없애는코드는 없습니다
ViewModel 어떻게 초기화 하고 계신지 관련 코드를 보면 좋을 것 같은데요.

1개의 답변

0 추천
뷰모델이나 싱글톤이 리셑된다는 건 process death 일 기능성 아주 높습니다. 안드로이드 시스템이 메모리 부족 등의 이유로 벡그라운드에 있는 앱을 강제로 종료시키는 겁니다. 이걸 해결할 수 있는 방법은 필요한 데이터를 파일, db같은 데 저장하고 액티비티가 시작할 때 복구시켜주거나, 뷰모델을 사용할 경우는 SavedStateHandle을 사용하여 데이터를 저장하고 불러올 수 있습니다. 안드로이드 스튜디오의 logcat을 통해서 process death를 재현하실 수 있습니다.
spark (224,800 포인트) 님이 2022년 9월 7일 답변
spark님이 2022년 9월 7일 수정
해당 증상은 process death 맞구요  저도 push notification 권한  핸들링을 추가 중인데 Encrypted SharedPreferences에 엑세스 토큰을 저장하는 식으로 처리해서 앱이 재시작되어도 원래 있던 화면으로 돌아가도록 했습니다.
...