2014-10-21 2 views
0

안녕하세요Android, 무엇이 더 효율적입니까? 숨기기 활동이나

  • 사용자는 자신이 연락처를 선택 할 수있는 연락처 목록을 (전화 이 활동 contact_activity를 할 수 있습니다)가 안드로이드 (단지 개인 프로젝트)에 대한 채팅 응용 프로그램을 개발하고 오래된 데이터와 새로운 시작합니다.
  • 그가 접촉, 다음 활동을 선택 (chat_activity를 호출 할 수 있습니다) 열리고있다 그는 다른 사용자와 쓰기 메시지를 수 있지만 사용자가 버튼을 다시 누르면, 그리고 다시 이전의 활성에 이르기까지 모든 것을 같은 방에서 채팅을 복원 할 때 대화가 삭제되었습니다.
  • 대화 상대가 직접 입력하거나 모든 응용 프로그램이 닫히기 전까지 모든 활성 대화 사용자가 입력 한 데이터를 저장하고 보여주고 싶습니다.

어떤 솔루션이 더 좋습니까?

  • 는 contact_activity 다시 모든 chat_activity에서 데이터를 전달하고 는 사용자가 내가 활동 스택 마법에 대해 들어
  • 새로운 활동을 만들어 chat_activity를 "복원"그래서 활동 을 최소화하기 위해, 그것을 다시 전달하고 어떻게 든 오래된 데이터 컨텍스트로 복원하십시오.

의견을 보내 주셔서 감사합니다.

답변

1

나는 당신이 무슨 말을 마법에 익숙하지 난 ...

는하지만 데이터를 보유하는 활동의 일이 아니다, 자신의 일 그들을 보여주는 것입니다.

해결책 내가 제안하는 것은 당신이 ChatManager이며 싱글 톤입니다. 이 관리자는 모든 활성 채팅 (사용자가 앱을 연 후에 열었던 앱)에 대한 일종의 데이터 구조를 보유 할 수 있습니다. Map 키는 Contact 채팅을 나타내는 모델 객체이며 값은 List of 채팅 세션에 속하는 Message.

활동 "저장 및 복원"기술은 나중에 완전히 완료되고 열리는 활동 사이의 데이터를 유지하기위한 것이 아니며 일종의 구성 변경 중에 데이터를 유지하거나 OS로 인해 활동이 종료되는 것을 의미합니다. 낮은 메모리 또는 무언가 ..

+0

괜찮아요 난 contact_activity를 설명하는 클래스에서 정적 색인을 생성하고, contactitem 해시 코드로 색인을 생성 한 다음 올바른 색인을 chat_acitivty를 설명하는 클래스에 전달합니다. 현재 인덱스 (일명 해시 코드)를 사용합니다. 전체 활동을 유지할 필요가 없으며 정적 Map이 답입니다. – Smarty77

0

내 생각에 가장 좋은 해결책은 활동을 저장 한 다음 복원하는 것입니다.

필요한 경우 일부 방법을 재정 의하여 복원 할 때 업데이트 할 수도 있습니다.

확인 저장 활동에 대한 자세한 내용은이 게시물 : Saving Android Activity state using Save Instance State

관련 문제