내 응용 프로그램은 두 개의 레이아웃 A를 가지고 있으며, 사용자에 B.혼란하는 방법은 내 응용 프로그램 상태를 저장하는 안드로이드 라이프 사이클에서 사용하는
라디오 버튼을 눌러 일부 데이터를 선택합니다. 그런 다음 BUTTON을 눌러 B 레이아웃으로 이동하고이 선택된 변수를 사용하여 일부보기 (편집 텍스트, 텍스트 및 단추)를 동적으로 작성합니다.
레이아웃에서 나는 onDestroy()를 구현했습니다 (사용자 정의 데이터를 저장하기 위해 onStop()을 구현할 때도 마찬가지입니다). 뒤로 또는 집을 누르고 작업 관리자에서 응용 프로그램을 제거하여 응용 프로그램을 종료하면 사용자가 응용 프로그램을 다시 시작하면 사용자가 선택한 데이터가 계속 표시됩니다.
이제 레이아웃 B에서 레이아웃 A의 사용자가 선택한 데이터를 기반으로보기의 첫 번째 부분을 만든 다음 사용자가 필요로하는만큼 레이아웃을 추가하고 제거 할 수있는 추가 단추가 있습니다. .
내 혼란이 온다 ................... 사용자가 레이아웃 B에서 필요한 것을 모두 채운 다음 A로 돌아가거나 응용 프로그램, 나는 그 레이아웃 B에 입력 된 데이터를 저장하고 싶습니다. 나는 SharedPreferences를 사용하여 데이터를 저장하는 방법을 알고 있습니다. 그러나 레이아웃 B를 구현할 필요가있는 방법이나 내 임무를 완수하기 위해 A를 추가로 필요로하는 방법을 모르겠습니다.
정확한 내용은 ..... 내가 원하는 건 레이아웃 B에 대한 사용자의 채워진 데이터로 앱을 시작할 수있는 것입니다. 레이아웃 A가 작동하는 것 같습니다. 사용자가 레이아웃 A에서 동일한 데이터를 선택하는 경우 (모든 것을 그대로 유지한다는 의미), 저장된 데이터 만 사용하고 싶지 않은 경우 사용자의 새 선택으로 새 레이아웃 B를 다시 시작하고 싶습니다.
하나 더 문제가 있습니다. 사용자가 B에서 레이아웃 A로 돌아 가면 모든 것이 레이아웃 A에 저장되었으므로 이미 버튼을 눌러 레이아웃 B로 돌아올 수 있습니다 (선택한 값을 변경하거나 실수로 뒤로 버튼을 누른 경우). 레이아웃 B에 대해서도 onDestroy()를 구현했지만 문제가 있습니다. 사용자가 레이아웃 A의 선택을 변경하지 않고 레이아웃 B로 다시 이동하면 저장 한 모든 내용이 지금 다시 작성되지만 A로 돌아가서 B에 다시 오면 거기에 없으며 매번이 상황이 계속 발생합니다 ... 내가 앞뒤로 가면 나는 홀수 번만 저장된 데이터를 보게 될 것이며 경우에 따라서는 거기에 없다.
레이아웃 B에서는 모든 것을 onDestroy()에 저장 한 다음 onCreate()를 사용하여 레이아웃 A의 데이터가 동일한 지 확인하여 다시 레이아웃 B를 다시 작성할 수 있습니다. 그렇지 않으면 레이아웃 B가 새로운 것입니다.
그래서 제대로 이해하면 onPause() 함수에 저장해야 할 내용을 저장하는 것이 좋습니다. 그런 다음 onCreate()에서 내 응용 프로그램을 다시 작성하는 대신 onResume()을 사용합니까? – Brian
@VaheMusinyan : 네 말이 맞아! 액티비티간에 뒤집기가 매번 다시 생성되는 것은 아니므로 onCreate/onDestroy는 건너 뛸 수 있지만 onPause/onRestore는 항상 호출됩니다. – lenik
사용자가 뒤로 버튼을 누를 때마다 onDestroy()가 호출된다는 것을 알고 있습니다. 이 사건을 어떻게 처리해야합니까? 이 경우 앱 상태를 유지할 수 있습니까 (홈 버튼 사례처럼)? 나는 onDestroy()를 호출하지 않고 뒤로 버튼이 돌아가 길 바란다. – Brian