비동기 작업을 내부 메서드로 실행해야하는 개체가 있고 메서드에 ui 스레드를 전달한 다음에 ui 스레드를 구현하고 싶습니다. 그런 식으로 asynctask - 이것을하는 방법이 있습니까?비동기 스레드가 ui 스레드에서 실행되도록 보장
의사 :
public class EditDetails extends Activity{
MyObject obj = new obj;
obj.syncWithServer(EditDetails.this);
}
public class MyObject {
public void syncWithWerver(EditDetails parent){
final class GetUserHttpTask extends AsyncTask<String/* Param */, Boolean /* Progress */, String /* Result */> {
@Override
protected String doInBackground(String... params) {
return "";
}
@Override
protected String onPostExecute(String result) {
//this doesn't run
}
}
}
}
참고 : onPostExecute는 doInBackground
편집
이 코드 후 해고되지 않기 때문에 순간이 작동하지 않는 경우는 의사 (가)입니다 실제 문제는 여전히 발생하고 있으며 그것을 나열했습니다 http://pastebin.com/jW6JpUbghere .. 기본적으로 그것은 onPostExecute 결코에서 pastebin에서 라인 72를 실행 한 후 붙어옵니다
Boris가 언급 한대로 onPostExecute 메소드의 반환 유형을 변경하고 위의 코드 스 니펫을 시도해야합니다. 그것은 작동해야합니다. –
이 스 니펫을 추가했습니다. 실행을 위해 onPostExecute를 얻을 수 없었지만 doInBackground에서 결과가 발생 했으므로 결과 응답에 "ok"코드를 사용하여 수동으로 실행했습니다. – user2083181