Служба обновления виджетов не работает должным образом

Моя служба обновления виджетов выдает: «android.os.NetworkOnMainThreadException», когда я пытаюсь получить ответ SOAP от своего веб-сервера.

Я уверен, что с кодом SOAP нет ошибки, потому что я использую тот же код в приложении только через IntentService вместо Service.

Я разработал свою базу виджетов на основе последнего примера: http://www.vogella.com/tutorials/AndroidWidgets/article.html

Это уловка безопасности для вашего приложения, так как выполнение сетевых операций в основном потоке вашего приложения блокирует все другие операции приложения. Рефакторинг вашего _1_ для использования фонового потока для выполнения сетевых операций и предоставления результатов для вашего виджета. Вы можете использовать для этого _2_ или немного пофантазировать и использовать свои собственные пулы потоков и т. д.


person Ognen Kostovski    schedule 26.08.2014    source источник


Ответы (1)


Код ошибки: 08-26 19:22:14.931: W/System.err(16244): android.os.NetworkOnMainThreadException 08-26 19:22:14.936: W /System.err(16244): в android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1125) 08-26 19:22:14.941: W/System.err(16244): в java.net.InetAddress. lookupHostByName(InetAddress.java:385) 08-26 19:22:14.941: W/System.err(16244): в java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 08-26 19:22:14.941: W/System.err(16244): в java.net.InetAddress.getAllByName(InetAddress.java:214) 08-26 19:22:14.941: W/System.err(16244): в libcore.net.http.HttpConnection .(HttpConnection.java:70) 08-26 19:22:14.941: W/System.err(16244): в libcore.net.http.HttpConnection.(HttpConnection.java:50) 08-26 19:22:14.941 : W/System.err(16244): в libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340) 08-26 19:22:14.941: W/System.err(16244): в libcore. net.http.HttpConnectionPool.get(HttpConnectionPool.java: 87) 08-26 19:22:14.941: W/System.err(16244): в libcore.net.http.HttpConnection.connect(HttpConnection.java:128) 08-26 19:22:14.956: W/System. ошибка (16244): в libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316) 08-26 19:22:14.956: W/System.err(16244): в libcore.net.http.HttpEngine.connect (HttpEngine.java:311) 08-26 19:22:14.956: W/System.err(16244): в libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290) 08-26 19:22:14.961 : W/System.err(16244): на libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240) 08-26 19:22:14.961: W/System.err(16244): на libcore.net. http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81) 08-26 19:22:14.961: W/System.err(16244): в libcore.net.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197) 08-26 19:22:14.961: W/System.err(16244): в org.ksoap2.transport.ServiceConnectionSE.openOutputStream(ServiceConnectionSE.java:120) 08-26 19:22:14.961: W/System.err(16244): в org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:176) 08-26 19:22:14.961: W/System.err(16244): в org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:114 ) 08-26 19:22:14.961: W/System.err(16244): at com.aek.callstatistics.UpdateWidgetService.soapGetOperators(UpdateWidgetService.java:280) 08-26 19:22:14.961: W/ System.err(16244): в com.aek.callstatistics.UpdateWidgetService.callLogUpdate(UpdateWidgetService.java:245) 08–26 19:22:14. 966: W/System.err(16244): at com.aek.callstatistics.UpdateWidgetService$1.done(UpdateWidgetService.java:481)

person Larry Schiefer    schedule 26.08.2014