Service
클래스에 NetworkOnMainThreadException
이 발생합니다.이 서비스는 내가 이해하는 한 백그라운드 프로세스이기 때문에 실제로 의미가 없습니다.NetworkOnMainThreadException in Service
Service 메서드에서 정적 도우미 메서드를 호출하여 데이터를 다운로드합니다. 나는 DefaultHttpClient도 사용하고있다.
여기 무슨 일 이니?
Service
클래스에 NetworkOnMainThreadException
이 발생합니다.이 서비스는 내가 이해하는 한 백그라운드 프로세스이기 때문에 실제로 의미가 없습니다.NetworkOnMainThreadException in Service
Service 메서드에서 정적 도우미 메서드를 호출하여 데이터를 다운로드합니다. 나는 DefaultHttpClient도 사용하고있다.
여기 무슨 일 이니?
onStartCommand()
은 Service
의 UI 스레드에서 실행됩니다. IntentService을 사용하거나 Service
(Handler
/Runnable
, AsyncTask
)의 다른 스레드 방법을 사용하십시오.
서비스 콜백은 모두 주 스레드, 즉 UI 스레드에서 실행됩니다. 백그라운드 작업을 원하면 Thread를 시작하거나 IntentService의 onHandleIntent (Intent i)를 사용하십시오.
응용 프로그램이 주 스레드에서 네트워킹 작업을 수행하려고 할 때 throw되는 예외입니다.
이것은 Honeycomb SDK 또는 을 타겟팅하는 애플리케이션에서만 발생합니다. 이전 SDK 버전을 대상으로하는 응용 프로그램은 기본 이벤트 루프 스레드에서 네트워킹을 허용하지만 크게는 입니다.
http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html
난 그냥이를 사용하여이 문제를 해결 :
public int onStartCommand(Intent intent, int flags, int startId) {
RefreshDBAsync task = new RefreshDBAsync(this);
task.execute();
return START_STICKY;
}
RefreshDBAsync는
당신이 쉽게 조사에 대한 코드를 보여줄 수 5 분마다에서 서버에 요청을하고있다? – OleGG
** ['NetworkOnMainThreadException'] (http://www.androiddesignpatterns.com/2012/06/app-force-close-honeycomb-ics.html) **에 관한 내 게시물을 확인하십시오. 이것이 일어날 수있는 이유를 설명합니다. –