안드로이드 페이스북 프로필 사진 가져오려는데 오류가 발생합니다.
조회수 1571회
try{
URL image_value = new URL("https://graph.facebook.com/"+id+ "/picture?type=large");
Log.i(getPackageName(),"url : "+image_value);
Bitmap bmp = null;
//오류발생 bmp = BitmapFactory.decodeStream(image_value.openConnection().getInputStream());
Log.i(getPackageName(),"bitmap : "+bmp);
String temp = BitMapToString(bmp);
PreferencesUtil.setPreferences(getApplicationContext(),"profile",temp);
} catch (IOException e){
Log.e("Err : ","image download err: "+e.getMessage());
e.printStackTrace();
}
LOGCAT
W/System.err: android.os.NetworkOnMainThreadException
W/System.err: at com.example.cracking.fb_processes.MainActivity$2$override.onCompleted(MainActivity.java:107)
왜 이코드에서 에러가 발생할까요..?? 해결방법좀 알려주시면 감사하겠습니다
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
허니콤 이후부터 정책적으로 UI 스레드에서 네트워크 요청 시 NetworkOnMainThreadException을 발생시킵니다. 따라서 네트워크를 통해 이미지를 요청하는 부분은 반드시 별도의 스레드에서 처리해야 됩니다.
코드를 수정하는 간단한 방법 중 하나는 AsyncTask를 사용해서 이미지 요청을 백그라운드 스레드에서 요청하고, 결과(비트맵)를 UI 스레드로 전달하는 방법을 사용해보시기 바랍니다. 아래 링크를 참고하셔서 AsyncTask를 사용하도록 코드를 수정해보세요.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력