0
The following is my example code.
private class PostLikes extends AsyncTask<Integer, Void, Void> {
String type_id, msg;
@Override
protected Void doInBackground(Integer... params) {
//....
//....
type_id = jsonobject2.getString("type_id");
msg = jsonobject2.getString("msg");
return null;
}
@Override
protected void onPostExecute(Void result) {
if (type_id.equals("1")) {
Toast.makeText(getApplicationContext(), "error, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
}
}
}
AsyncTask를 사용하는 표준 방법은 doInBackground 함수가 백그라운드 스레드의 결과를 onPostExecute 함수로 반환하는 것입니다. 그 코드는 잘 작동하지만 위의 코드에 문제가 있는지 여부를 알고 싶습니다. 감사합니다. .안드로이드의 AsyncTask의 doInBackground와 onPostExecute 둘 다에 클래스 멤버를 공유하는 데 문제가 있습니까?
답변 해 주셔서 감사합니다. 또한 반환 값이 다중 배열 (String, int, boolean) 인 경우 복잡한 매개 변수를 사용하는 것보다 낫다고 생각합니다. 하지만 여기서는 이와 같은 예제 코드를 찾을 수 없습니다. – bb14816
나는 당신의 의견을 알고 싶다. – bb14816
기술적으로, 문서는 백그라운드 계산의 결과가'onPostExecute()'에 전달된다는 것을 설명합니다. 그래서 그 패턴입니다. 문제는 읽기 쉽고 유지 보수가 가능한 것입니다. 패턴을 만족 시키거나 멤버 변수를 사용하기 위해 일회용 구조를 구축해야합니까? 나는 어느 쪽이라도 생각한다. 그러나 나는 의견이 다를 것이라고 확신한다. – Cheticamp