2013-10-11 1 views
0

다음 코드로 ADT로 안드로이드에서 Google 페이지 랭크를 얻으려고하고 있지만 BufferedReader 행에 NetworkOnMainThreadException을 제공합니다.android java get google PageRank

String url = "http://toolbarqueries.google.com/tbr?client=navclient-auto&hl=en&" 
     + "ch=6" + hash + "&ie=UTF-8&oe=UTF-8&features=Rank&q=info:" + domain; 
URLConnection conn = new URL(url).openConnection(); 

BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); 

String input; 
while ((input = br.readLine()) != null) { 
    result = input.substring(input.lastIndexOf(":") + 1); 
} 

그런데 PC 자바 프로젝트에서이 동일한 코드를 시도해도 정상적으로 작동합니다. AndroidManifest.xml에도 다음 권한을 부여합니다.

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

답변

0

이것은 Google의 자기 질문입니다. 안드로이드에서는 오랜 기간의 작업을 UI 스레드 (이 블록)에서 실행하지 않아야합니다. async-task를 사용하여이 예외를 피하십시오.

+0

예, 어쨌든 감사합니다. 스레드 내에서 AsyncTask를 사용했습니다. –