2014-10-30 2 views
3

나는 AsyncTask을 많이 사용하고 있습니다. 모든 이들은 http를 통해 서버에 데이터를 보냅니다. 그들 중 일부는 데이터를 execute(data...)으로 전달합니다. 다른 사람에 나는 그것을 위해 생성자를 사용하고 있습니다 :AsyncTask에 데이터 전달 : 실행 (args) 대 생성자? 내 프로젝트에서

new SomeTask().execute(1, 2, 3); 

또는

new SomeOtherTask(1, 2, 3).execute(); 

는 기본적으로 이러한 호출은 동일의 AsyncTask 다시 사용 상태를 저장 할 수있다.

그 (것)들을 사용하는 바람직한 방법은 무엇입니까? 내가 놓친 게 있니?

답변

0

제 의견으로는 매개 변수를 execute 메서드로 전달합니다 (물론 모든 매개 변수가 같은 유형을 공유하는 경우). 사용자 지정 생성자를 사용하면 매개 변수를 작성하고 전용 변수에 저장하므로 쓸모가 없습니다. 예를 들어 OnPostExecute 메서드에서 이러한 매개 변수를 사용하지 않는 한 사용할 수 없습니다.

+0

yepp, onPre/PostExecute에 대해서도 마찬가지입니다. 예를 들어''pre''에서 progressBar를 보여줍니다.'post'에서 숨 깁니다. – injecteer

+0

매개 변수는 임시 데이터로 볼 수 있습니다. doInBackground에서만 입력으로 사용됩니다. 이러한 매개 변수는 더 가치가 있습니다. 범위가 doInBackground를 초과하면 작업의 일부 여야하며 생성자에서 설정해야합니다. – ToYonos

0

사용 그것은 생성자에 값을 전달보다 낫다 new SomeTask().execute(1, 2, 3);

. 입력을 생성자에 인수로 전달하면 AsyncTask가 execute 메소드에서 가변 인수를 전달할 수 있기 때문에 멤버 변수를 만들어야하고 불필요합니다.

AsyncTask에 전달 된 입력에 대한 멤버 변수를 유지해야 할 때까지 생성자를 사용하여 입력을 전달하면 안됩니다.