2013-08-21 1 views
0

현재 기존 Android 앱을 단편을 사용하여 변환하려고합니다. 내 활동이하는 주요 작업은 때로는 시간이 걸릴 수 있으므로 콜백 처리기로 작동하도록 일부 스레드를 구현했습니다. 이러한 대화 상자와 진행 대화 상자를 사용하는 것이 가장 좋은 방법이라고 생각했습니다.프래그먼트 스레드 클래스를 프래그먼트 또는 활동 클래스에 두는 것이 가장 좋습니다.

희망적으로는 의미가 있습니다.

제 질문은 : 내 내부 클래스를 내 Fragment 클래스로 이동해야합니까, 아니면 내 Activity 클래스에 유지해야합니까?

답변

0

어렵고 빠른 규칙은 없지만 가장 자연스럽게 맞는 범위에서 계속 유지하는 것이 좋습니다. 장기 실행 태스크의 결과가 시작된 프래그먼트 내에서만 유용하다면 프래그먼트 내에 존재합니다. 작업이 여러 조각에 영향을 줄 수있는 경우 작업에 포함될 수 있습니다.

1

사실은 일반적으로 소프트웨어의 가장 좋은 방법은 먼저 소프트웨어의 아무것도 아니 "하드 규칙"이 없다는 것을 알아야 할 모든 키워드가 모든이 (책 실용적인 사고와 학습에서 촬영 냐에 "입니다, 약간 다릅니다) "그 자체로 모두 당신이 원하는 것과 당신이 필요로하는 것에 달려 있습니다. 당신은 어디에 균형을 유지해야 좋은지 알 수 있습니다.하지만이 경우 일반적으로 가장 좋은 방법으로 돌아가는 것이 가장 좋습니다. Fragment/Activity 또는 다른 안드로이드 구성 요소에서 완전히 분리 된 비즈니스 모델 클래스는 실제로 모델 클래스가 있어야하며 컨트롤러 클래스와 함께 두 가지 모두 해당 요소 내에서 데이터와 뷰를 조작/채워야합니다.

희망이 도움이됩니다.

감사합니다.

1

당신이 가지고있는 조각의 수와 그 스레드로 무엇을하려 하는가에 달려 있습니다. 일반적인 규칙은 없지만 다음은 결정을 내리는 데 고려해야 할 두 가지 사항입니다.

(1) 당신이 easly 수 있습니다 FragmentActivity 이런 식으로 콜백을 가지고이 적합 할 수 있습니다 (설정 ViewPager 또는 Tab A의 말) 여러 조각에 사용되는 것 정보를 다운로드 같은 일을하는 경우 해당 정보를 UI를 처리 할 Fragment에 배포하십시오. 마음에 떠오르는 또 다른 예는 위치 데이터를 가져 오는 것입니다. 앱 전체에서 위치 데이터를 사용하고 FragmentActivity이 여러 조각을 호스팅하는 경우 한 곳에서 정보를 가져 와서 단편을 개별적으로 업데이트하는 것이 좋습니다.

(2) 일회용 다운로드, 게시물 또는 특정 조각에 고유 한 다른 항목에 AsyncTask과 같은 것을 사용하는 경우 해당 조각에 대해 지역화 된 상태를 유지하는 데는 아무런 문제가 없습니다. 사실,이 경우 작업을 로컬에서 완료하는 것보다 FragmentActivity에로드하는 것이 덜 효율적입니다.

실제로 "올바른"대답이 없습니다. 앱이 어떻게 구조화되고 무엇을 성취하려고하는지에 대한 질문.

관련 문제