Android 애플리케이션에는 두 가지 활동이 있습니다.지연없이 백그라운드 스레드에서보기에 대한 데이터를로드 할 때 모범 사례
활동 A는 항목 목록을 표시합니다. 활동 B는 특정 항목에 대한 세부 정보를 보여줍니다.
세부 정보는 largish SQLite 데이터베이스에서로드됩니다. 데이터를 생성하는 데 사용 된 쿼리는 합리적인 전화에서 약 250 ~ 500 밀리 초 걸립니다.
제 질문은 좋은 사용자 환경을 제공하면서 데이터를로드하는 가장 좋은 방법입니다.
현재 활동 B가 생성되면 AsyncTask가 실행됩니다. 작업이 완료되면 여러보기가 만들어지고 화면에 추가됩니다. UI 스레드에 데이터가로드되지 않습니다.
사용자에게 액티비티 B가 멋진 표준 줌 애니메이션으로 열리고 잠시 후 몇 초 후에 뷰가 데이터로 채워집니다. 그것은 작은 쓰레기 IMO를 보인다.
또 다른 옵션은 UI 스레드에 데이터를로드하는 것입니다. 적절한 시간에이 작업을 수행하면 데이터가로드되고 표준 줌 애니메이션으로 뷰가 변경되지만 이미 채워진 뷰로 확대되는 동안 250ms 동안 선택된 목록 항목이 화면에 고정됩니다. 그것은 훨씬 좋네 보이지만 이상적이지 않은 UI 스레드를 차단하고 있습니다.
새보기가 아직 준비되지 않은 상태에서 멋진 전환을 얻는 가장 좋은 방법은 무엇입니까?
데이터로드, 취소 가능성 추가, 가장 중요한 것은 별도의 스레드에서로드하는 동안 진행률 대화 상자를 활동 A 위에 놓습니다. 네트워크 작업이므로 응답을받지 않고 사용자가 작업을 쉽게 취소 할 수 있도록해야합니다. IMHO입니다. – harism
네트워크 작업이 아닙니다. –