2011-01-20 8 views
1

내 응용 프로그램은 네트워크 부분과 GUI의 두 부분으로 구성됩니다. 그것은 마치 브라우저처럼 작동합니다 - 사용자가 서버에서 일부 정보를 요청하고, 서버가 일부보기를 나타내는 일부 데이터를 보낸 다음 GUI가이를 표시합니다.안드로이드,보기 유지

지금 나는 모든보기를 구성하고 유지하는 서비스로서 네트워크 부분을 구현했습니다. 활동이 생성되면, 네트워크 부분은 내용보기를 최종 수신보기로 설정합니다.

모든보기 계층을 다시 만들고 모든 상태를 저장할 필요가없는 매우 간단합니다.

하지만 문제가 있습니다 - 서비스 컨텍스트 내에서 뷰를 만들 수 있습니다. 활동 시작 사이에 뷰를 유지할 수 있으며, 활동이 파괴되어 생성 될 때 뷰를 바인딩 해제하고 다시 바인딩 할 수 있습니까? 일부보기에는 활동 컨텍스트가 필요합니다 (예 : Spinner, 팝업 대화 상자 생성).

그래서 생성 후보기의 컨텍스트를 변경할 수있는 방법이 있습니까?

나는 안드로이드 프로그래밍에있어서 매우 새로운 기능이므로, 이것을 수행하는 더 좋은 방법이있을 수있다. (다시, 작업은 뷰 계층 구조와 모든 상태가 beeing이 파괴되고 다시 생성 될 때, 화면이 회전 할 때, 예를 들어).

답변

1

나는 ""으로 잘못된 길을 가고 있다고 강력히 믿습니다. 네트워크 부분을 구현하여 모든보기를 구성하고 유지합니다. ".

보기 계층을 보유/관리하려는 것은 Activity입니다. 따라서 ActivityService (또는 어떤 식 으로든 Service으로 알림)에 데이터를 표시 한 다음 해당보기를 업데이트해야합니다. 네, 상태 관리가 필요한 경우도 있습니다 만 해킹없이 의도 한대로 작동합니다. 다른 말로하면 - OS를 속이려고 시도하지 말고 대신 Android 용 모범 사례에 대응하십시오.

+0

보기를 재사용 할 수있는 방법이 없으므로 활동이 시작될 때 모두 다시 작성해야합니다. – note173

+0

어쩌면 일부 해킹 방법이 있을지 모르지만 내 프로젝트와 튜토리얼이나 오픈 소스 프로젝트의 나머지 부분에서는보기가 항상 '활동'(하위) 클래스의 필드입니다. 따라서 'Activity'의 새로운 인스턴스가 생성되면 그 시점에 모든 뷰가 생성됩니다. –