-1

2 ~ 3 일 동안 내 문제에 대한 해결책을 찾았지만 유사한 문제가있는 사람을 찾지 못했습니다. 기본적으로 내 앱은 웹 사이트의 '모바일 버전'이므로 시간적으로 다른 계정의 정보를 저장해야하므로 signleton 클래스를 사용하여 '사용자'라고합니다. 그러나 어떤 두 가지 활동을 탐색하면서 (하나는 확장 가능한 목록이 있고 다른 하나는 목록보기), 빈 공간을 "상점"(두 번째 활동)의 요소로 대체하는 카트 (1 차 활동)가있는 것처럼 당신은 다른 사람과 다른 사람에게서 여러 번 거듭납니다). 그래서 Intelligent()를 통해 앞으로 및 뒤로 작업하는 동안 갑자기이 싱글 톤이 다시 초기화되어 응용 프로그램이 깨지는이됩니다. 이상한 사실은 입니다. logcat에 어떤 오류도 발생하지 않으며, singlotn이 init() 메소드을 호출하여 특정 시점에 로그를 기록하기 때문에 앱이 일시적으로 중단됩니다. 또 다른 이상한 점은 내가 처음으로이 물건을 구현했다는 것입니다. 아무런 문제없이 작동했습니다. 이제는 여러 가지 다른 활동을 구현했고 모든 그래픽 요소 (활동 및 목록 요소, 많은 드로어 블 등의 배경)를 추가했습니다. 이 문제가 발생합니다 (이전에 말한 작업 만 수행). (이게 관련이 있는지 모르겠다.) 내 애플리케이션은 J. Feinstein (몇 가지 기능, 예를 들어 확장 가능한 목록이있는 것)과 ActionBarSherlock의 슬라이딩 메뉴를 사용한다. (아직 사용자 정의 액션을 사용한다. 막대, 그래서 나는 내 자신의 행동을 팽창시킨다. 바 레이아웃). 각 액티비티에는 매 액티비티의 onCreate() 메소드에서 매번 생성되는 슬라이딩 메뉴가 있습니다.앱이 실행되는 동안 내 안드로이드 앱의 싱글 톤이 다시 초기화 됨

나를 돕기 위해 필요한 코드 또는 로그 이벤트의 모든 부분을 물어 보겠습니다. 여기에 설명해 드리겠습니다.

도움을 주셔서 대단히 감사드립니다. 저는이 문제에 정말로 빠져 있습니다.

답변

0

"세션"사용자가 있기를 원합니다.

정확한 문제는 모르지만 안드로이드 시스템은 메모리가 부족할 때 정적 데이터를 파괴 할 수 있습니다.

당신이 할 수있는 것은 선호 값이나 영구 데이터 (파일, db)로 일부 값 (사용자, 타임 스탬프)을 저장하는 것입니다. 또 다른 방법은 하나의 활동에서 다른 활동으로 필요한 사용자 데이터를 전달하는 것입니다.

+0

빠른 재생을 위해 Carl에게 감사드립니다. 네, "세션"객체가 필요합니다. 사실, 응용 프로그램 클래스를 확장하는 싱글 톤은 응용 프로그램이 살아있을 때까지 살아 있다는 사실 때문에 완벽했습니다. 또한 가장 중요한 활동을 열 때 항상 데이터를 업데이트하기 위해 몇 가지 웹 서비스를 호출하고 싱글 톤 클래스에서 더 느린 것으로 생각한이 데이터를 항상 읽고 쓰십시오. 이러한 데이터를 활동을 통해 전달하십시오. 모든 활동에서 액세스 할 수있는 것보다 실제로는 더 복잡하다고 생각하며, 중앙 집중화하여 더 쉽게 업데이트 할 수있게하십시오. – Axce

+0

또한 iOS에 동일한 앱을 개발하는 파트너는 동일한 싱글 톤을 갖고 있더라도 이러한 종류의 문제가 없습니다. 싱글 톤 객체는 iOS 및 Android와 다르게 관리됩니까? – Axce

+0

@Axce 앞서 언급했듯이 Android 시스템은 활동 외부의 일부 리소스를 종료시킬 수 있습니다. 액티비티간에 매개 변수를 전달하려면 http://stackoverflow.com/a/2091482/747906을 참조하십시오. –