ListView
및 "CreateEvent"Activity를 확장하는 "EventsList"라는 두 가지 활동이 있습니다. 사용자는 목록에서 "이벤트"를 선택하여 CreateEvent 활동에서 편집 할 수 있습니다. 사용자가 AsyncTask를 생성하여 데이터를 웹 서비스에 전달하는 것보다 CreateEvent 저장을 클릭하면 응답을 받고 응답을 데이터베이스로 구문 분석합니다.다른 Activity에서 스폰 된 AsyncTask에서 ListView 업데이트
내 문제는 AsycTasks onPostExecute()
의 결과를 EventsList 활동에 알리는 방법을 모른다는 것입니다. StartActivityForResult
에있는 목록을 새로 고쳐 보았지만이 시점까지는 스레드가 자주 완료되지 않았습니다.
그래서 CreateEvent에 의해 생성 된 AsyncTask의 결과를 EventsList 활동에 어떻게 알릴 수 있습니까? 나는 사용자 정의 콜백을 사용하려고하는 행운이 없었다.
편집
정말 글로벌 플래그 또는 adapter
사용에 대한 예리한 아니에요. 콜백/리스너를 사용하는 것이 가장 좋습니다. 그렇게하면 절대적으로 필요한 경우에만 목록이 변경되거나 통보됩니다. (어댑터가 글로벌 기준이 있기 때문에) 당신이 AsyncTask
에 list adapter of EventsList
활동 데이터를 입력하고 AsyncTask를의 onPostExecute()
그냥 finish() the CreateEvent activity
단지 notifydatasetChanged() for adapter
를 호출이 지금 EventsList's onActivityResult()
당신을 빌려하는 경우
StartActivityForResult()가 더 좋은 방법 인 것 같습니다. 가능한 해결 방법은 CreateEventActivity입니다. AsyncTask를 시작한 후 즉시 EventsListActivity로 돌아 가지 않고 대신 ProgressDialog를 표시하고, AsyncTask 완료를 기다리고, CreateEventActivity에서 setResult()를 기다린 다음 EventsListActivity로 돌아가십시오. 시도 할만한 가치가 있습니다. – yorkw