SDK Version을 14로 하면
AsyncTask 의 doInBackground() 함수가 호출이 안됩니다.
ICS 4.0으로 업데이트 된 후, 뭔가 제약사항 또는 오류가 발생되나본데 알지 못하겠습니다.
혹시 선 경험해 보신분들 있으신가요?
네트워크관련한 api를쓰시나요?? 데이터를 어디서받아오는부분이라던가....?
허니콤이후부터는 네트워크관련 내용을 메인 스레드에서 호출하면 에러터지게 만들어놨습니다...
저도 불과4일전에 알았네요 ㅡㅡㅋ
doInBackground()가 메인쓰레드인가요? 메인쓰레드가 뭔지요? UI쓰레드를 의미하는 건가요? (doInBackground가 UI쓰레드가 아니니 이건 아닌듯 하고....) 순식간에 와서 질문만 하고 가네요...
원래 AsyncTask를 실행할때는 doinBackground()를 직접호출하는게 아니라 execute() 호출하는거 아닌가요
아니면 execute()로 실행시켰는데 정상적으로 실행이 안되신다는건가요?
저도 그문제때문에 고생을 좀 했네요~
targetSdkVersion = 14 일때부터 발생하는 문제이네요.
예상은 11버전부터 발생할거같은데 테스트 안해봤어요 ^^;;
아마도 허니콤부터 생긴 메소드라 11부터 해당 문제가 있을것으로 보이기도 하지만
그부분은 궁금하신분들이 테스트 하시길 ^^;;
AsyncTask 의 excute()부분을 변경하셔야 하는데요.
if(isICS==true)
executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "");
else
execute();
이런식으로 분기처리하셔야 합니다.
executeOnExecutor()은 허니콤(api 11) 부터 생긴 메소드라
이전 단말에서는 분기처리 안하시면 아래와 같은 에러발생하오니
분기처리는 반드시 하셔야합니다.
java.lang.NoSuchFieldError: android.os.AsyncTask.THREAD_POOL_EXECUTOR



