전체 애플리케이션 세션의 활동 사망/재시작 간 데이터를 유지하기위한 Android의 모범 사례는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2033046

문제

우리는 Way와 같은 마법사에서 작동하는 몇 가지 활동이있는 Android 앱을 설계하고 있습니다. 사용자는 활동 #1에서 활동 #5로 전달하여 최종 활동 ( #6)으로 이동해야합니다.

낮은 메모리에서 OS에 의해 활동이 갑자기 종료 될 수 있다는 것을 알고 있으므로 응용 프로그램 클래스는 "마법사"활동 및 전체 세션에 필요한 기타 데이터에 대한 데이터를 데이터를 입력하기위한 정적 저장소로 사용했습니다.

불행히도 우리는이 접근법이 실패한 것을 발견했습니다. 응용 프로그램 클래스 인스턴스가 OS에 의해 죽일 수있는 것처럼 보입니다 (이것은 Android 1.6 대 1.5에서 구체적으로 발견되었습니다). 이 접근법에 대한 우리의 기대가 잘못 되었습니까 (응용 프로그램 클래스 인스턴스가 항상 전체 앱 세션에 살고 있다고 생각합니까)?

따라서 문제는 - 전체 애플리케이션 세션에 대한 활동과 재시작 사이의 데이터를 유지하기위한 Android의 모범 사례는 무엇입니까?

도움이 되었습니까?

해결책

우리는 Way와 같은 마법사에서 작동하는 몇 가지 활동이있는 Android 앱을 설계하고 있습니다. 사용자는 활동 #1에서 활동 #5로 전달하여 최종 활동 ( #6)으로 이동해야합니다.

별도의 활동으로 구현해야합니까? 하나의 활동을 사용하지 않는 이유는 무엇입니까? ViewFlipper 아니면 마법사 상태 사이를 이동할 것이 있습니까?

이 접근법에 대한 우리의 기대가 잘못 되었습니까 (응용 프로그램 클래스 인스턴스가 항상 전체 앱 세션에 살고 있다고 생각합니까)?

응용 프로그램 클래스 인스턴스는 항상 전체 앱 세션 인 Afaik에 적합합니다. 그러나 모든 활동이 파괴되면 신청서도 파괴됩니다.

따라서 문제는 - 전체 애플리케이션 세션에 대한 활동과 재시작 사이의 데이터를 유지하기위한 Android의 모범 사례는 무엇입니까?

  1. a Service - 이것이 RAM에서 쫓겨나면 처음부터 다시 시작하십시오.
  2. 데이터베이스를 사용하십시오
  3. 파일을 사용하십시오

또는 최상의 :이 경우 여러 활동을 사용하지 마십시오. 마법사는 단일 논리적 인 것입니다. 그것을 그렇게 취급하고 그것을 단일 활동으로 만드십시오. 당신의 상태를 통해 지속하십시오 onSaveInstanceState(), 그리고 당신은 설정됩니다.

다른 팁

사용자가 입력하고 저장 해야하는 데이터가 일련의 프리미티브 인 경우 간단히 사용할 수 있습니다. SharedPreferences 영구 저장소로.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top