2013-04-24 1 views
0

내 안드로이드 애플 리케이션에서 페이스 북의 친구를 가져 오려고 노력하고 있습니다. 내 코드는 안드로이드 버전에서 잘 작동하고 있습니다. 그러나 NetworkOnMainThreadException은 4.0 이상 버전에서 나타납니다. 당신이> = 4.0 안드로이드 OS안드로이드 페이스 북 친구 가져 오기 NetworkOnMainThreadException 4.0 이상에서 android os 버전

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
StrictMode.setThreadPolicy(policy); 

이 줄을 추가하거나 사용할 수

public static void getFaceBookFriendsIDs() { 

     new Thread(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        JSONObject result = new JSONObject(facebook.request("me/friends")); 
        JSONArray friendsArray = result.getJSONArray("data"); 
        //friendsList = new ArrayList<String>(); 
        for (int i = 0; i < friendsArray.length(); i++) { 
         //friendsList.add(friendsArray.getJSONObject(i).getString("id")); 
         String id=friendsArray.getJSONObject(i).getString("id"); 
         String name=friendsArray.getJSONObject(i).getString("name"); 
         contactBean=new ContactBean(); 
         contactBean.setFbId(id); 
         contactBean.setUserName(name); 
         com.interactiveapp.Constants.fbContactListArrayList.add(contactBean); 
        } 
       } 
       catch (MalformedURLException e) { 
        e.printStackTrace(); 

       } 
       catch (JSONException e) { 
        e.printStackTrace(); 

       } 
       catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     }).start(); 

     /////////////HANDLE RESPONSE////////// 
     Message m = new Message(); 
     m.obj=""; 
     m.arg1 =1 ; 
     saveHandler.dispatchMessage(m); 

    } 

답변

0
+0

이 그것을 할 올바른 방법입니다 여기에

내 코드입니다 이? 이는 OS 서비스를 중단시킬 수 있기 때문입니다. –

+1

asynctask를 사용할 수 있습니다. -> http://stackoverflow.com/a/16103640/1168654 –

+0

AsyncTask를 사용하거나 Facebook SDK의 버전 3.0과 비동기 메소드가있는 Request 클래스를 사용하십시오. –