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

액티비티 상태 저장(editText )

0 추천
1.

EditText 는 화면 회전등 액티비티가 종료됬다가 살아날때 사용자가 입력한 글이 사라지지 않는 걸로 알고있는데요 OnSaveInstanceState( ) 처럼 시스템에 의한 종료에도 저장되있는 건가요??

 

2.

시스템에 의한 종료를 직접 실행 하는 방법 알려주시면 감사겠습니다!
songjae5426 (1,800 포인트) 님이 2023년 2월 11일 질문

1개의 답변

0 추천
 
채택된 답변
1.

EditText는 TextView를 상속받았다는 걸 아실 겁니다. TextView를 보면 freezesText라는 속성이 있습니다.

https://developer.android.com/reference/android/widget/TextView#attr_android:freezesText

이걸 true하시면 상태값을 자동으로 저장하고 복원해 줍니다. 기본값은 false입니다. 테스트해보세요. 테스트하실 때, 화면에 EditText를 여러개 올려놓고 해보세요. 제 기억으로는 EditText를 여러개 사용할 경우 안드로이드가 원하는 EditText에 정확하게 상태복구를 하지 못했던 기억이 나네요. 그리고 상태복구를 위해서는 뷰에 id는 사용하시는게 좋습니다. (아마도 RecyclerView같이 id를 부여하지 않은 경우였던 것 같네요)

안드로이드 기본 뷰들은 상태저장/복구 기능을 구현하고 있는데, 이건  ViewClass 안에 상태를 저장하고 복구하는 메소드를 구현해주고 있기 때문입니다. 따라서 커스텀뷰를 만든다면 직접 구현을 해주는 것이 좋습니다.

2. Android Studio의 LogCat을 보시면 Terminte app이라는 아이콘버튼이 있습니다. 앱을 실행한 다음, 홈키를 눌러서 백그라운드로 가게 만들고 나서 해당 버튼을 누르시면 앱이 강제로 죽게 됩니다. 디바이스의 Task manager에서 님의 앱을 선택하면 마지막으로 보였던 화면에 대한 상태를 복구하개 됩니다. 이 때 앱 전체를 복구하는 것이 아니라 마지막 화면만 복구를 한다는 점도 기억하시면 좋을 것 같습니다.
spark (227,470 포인트) 님이 2023년 2월 11일 답변
songjae5426님이 2023년 2월 16일 채택됨
...