문제

새로운 활동을 시작하고 현재 활동에서 일부 데이터를 전달한다고 가정하십시오. 데이터가 원시 유형 인 경우 간단히 의도를 사용하고 추가 기능을 추가 할 수 있지만 ArrayList 또는 Objects와 같은보다 복잡한 데이터 구조에 대해 어떻게해야합니까?

도움이 되었습니까?

해결책

몇 가지 옵션이 있습니다.

  1. 당신은 수업에서 더 복잡한 구조를 Parcelable 추가로 저장할 수있는 인터페이스
  2. 당신은 수업에서 더 복잡한 구조를 Serializable 추가로 저장할 수있는 인터페이스
  3. 정적 데이터 멤버를 사용하여 모두 같은 프로세스에 있기 때문에 물건을 전달합니다.
  4. 외부 스토리지 (파일, 데이터베이스, SharedPreferences)
  5. 방금 게시 한 사람이 언급 한 것처럼 사용자 정의와 같은 공통 구성 요소를 사용하십시오. Application 또는 지역 Service

당신이하고 싶지 않은 것은 엑스트라를 통해 큰 물건을 통과하는 것입니다. 예를 들어, 카메라에서 사진을 가져 오는 응용 프로그램을 작성하는 경우 엑스트라에 사진을 전달하고 싶지 않습니다. 정적 데이터 멤버를 사용하십시오 (icky). 의도는 크로스 프로세스를 작동하도록 설계되었습니다. 즉, 큰 양의 데이터 복사가 진행되고 있으며, 이는 큰 물건에 필요하지 않을 때 피하고 싶은 것을 의미합니다.

다른 팁

내가 알고있는 옵션 중 하나는 모든 활동이 컨텍스트에서 검색 할 수있는 응용 프로그램 개체에 사용하는 데이터를 저장하는 것입니다.

나는 또한 사용에 대해 들었습니다 Google 프로토콜 버퍼 더 높은 성능 솔루션을 달성합니다

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