2013-08-09 1 views
7

시나리오가 있으며 어떤 경로로 가야할지 잘 모르겠습니다.조각이나 상위 활동의 ​​Asynctask?

시나리오

응용 프로그램은 다양한 조각을 표시하는 홈 활동이있다. 파편의 데이터는 웹이나 로컬 데이터베이스에서 올 수 있으며 asynctask를 사용하여 검색됩니다.

  1. 이 조각에 결과를 전달하는 fragment.newInstance(parameters)를 사용하여 다음 부모 활동에 AsyncTask를 넣고 :

    내가 본 바로는

    , 나는이 개 대안이있다. 그러나, 내 asynctask있는 경우 새 매개 변수 집합을 사용하여 newInstance를 호출해야 할 때마다 조각의 진행률이나 일부 정보를 업데이트해야합니다.

  2. 진도가 필요할 때 조각을 추가하고 asynctask를 추가하면 asynctask가 완료되었을 때 조각의보기가 업데이트 될 수 있고 + asynctask가 완료되면 목록을 채울 수 있습니다. 정보.

올바른 접근 방법은 무엇입니까?

LE : 실제로 나는 부모 활동

답변

0

내가 두 번째 방법으로 갈 것에 findFragmentById와 그것을 발견 한 후 나는 조각의 공개 메소드를 호출 할 수 조각을 업데이트하기 위해 포인트 1.
AsyncTask가 작동하는 동안 화면 방향 변경에서 발생할 수있는 문제를 피하는 것이 주 원인입니다.

+0

답장을 보내 주셔서 감사합니다. 앱의 세로 방향 만 맞습니까? – Alin

+1

업데이트해야 할 뷰가 Fragment에 선언되어 있다면 AsyncTask를 조각에 넣는 것이 좋습니다. "관련있는 일들을 함께 유지하라." –

+0

실제로 AsyncTask를 조각으로 선언 할 필요는 없지만 자체 파일에서 선언 할 수는 있지만 그 생각은 조각에서 시작해야합니다. –

0

나는 방법 2와 함께 갈 것이지만 더 나아가십시오.

비동기 작업을 실행할 별도의 조각이 있어야합니다. 이 방법을 사용하면 아무런 문제없이 모든 화면 변경 내용을 처리 할 수 ​​있습니다.

다른 부분에서는 데이터를 표시 할 수 있습니다. 비동기 태스크 조각의 데이터를 콜백을 통해 액티비티로 전달하고, 액티비티가 디스플레이 조각에서 메소드를 호출하여 데이터를 업데이트하게 할 수 있습니다.