02-08 20:34:18.700: D/AndroidRuntime(1487): Shutting down VM
02-08 20:34:18.700: W/dalvikvm(1487): threadid=1: thread exiting with uncaught exception (group=0x41490930)
02-08 20:34:18.710: E/AndroidRuntime(1487): FATAL EXCEPTION: main
02-08 20:34:18.710: E/AndroidRuntime(1487): android.os.NetworkOnMainThreadException
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
02-08 20:34:18.710: E/AndroidRuntime(1487): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
02-08 20:34:18.710: E/AndroidRuntime(1487): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
02-08 20:34:18.710: E/AndroidRuntime(1487): at libcore.io.IoBridge.connect(IoBridge.java:112)
02-08 20:34:18.710: E/AndroidRuntime(1487): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
02-08 20:34:18.710: E/AndroidRuntime(1487): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
02-08 20:34:18.710: E/AndroidRuntime(1487): at java.net.Socket.connect(Socket.java:842)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
02-08 20:34:18.710: E/AndroidRuntime(1487): at com.example.aa.MainActivity.get(MainActivity.java:76)
02-08 20:34:18.710: E/AndroidRuntime(1487): at com.example.aa.MainActivity.access$1(MainActivity.java:68)
02-08 20:34:18.710: E/AndroidRuntime(1487): at com.example.aa.MainActivity$1.onClick(MainActivity.java:50)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.view.View.performClick(View.java:4204)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.view.View$PerformClick.run(View.java:17355)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.os.Handler.handleCallback(Handler.java:725)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.os.Handler.dispatchMessage(Handler.java:92)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.os.Looper.loop(Looper.java:137)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.app.ActivityThread.main(ActivityThread.java:5041)
02-08 20:34:18.710: E/AndroidRuntime(1487): at java.lang.reflect.Method.invokeNative(Native Method)
02-08 20:34:18.710: E/AndroidRuntime(1487): at java.lang.reflect.Method.invoke(Method.java:511)
02-08 20:34:18.710: E/AndroidRuntime(1487): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
02-08 20:34:18.710: E/AndroidRuntime(1487): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
02-08 20:34:18.710: E/AndroidRuntime(1487): at dalvik.system.NativeStart.main(Native Method)
02-08 20:34:18.710: D/dalvikvm(1487): GC_CONCURRENT freed 316K, 17% free 5482K/6528K, paused 2ms+3ms, total 26ms
02-08 20:34:18.700: W/dalvikvm(1487): threadid=1: thread exiting with uncaught exception (group=0x41490930)
02-08 20:34:18.710: E/AndroidRuntime(1487): FATAL EXCEPTION: main
02-08 20:34:18.710: E/AndroidRuntime(1487): android.os.NetworkOnMainThreadException
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
02-08 20:34:18.710: E/AndroidRuntime(1487): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
02-08 20:34:18.710: E/AndroidRuntime(1487): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
02-08 20:34:18.710: E/AndroidRuntime(1487): at libcore.io.IoBridge.connect(IoBridge.java:112)
02-08 20:34:18.710: E/AndroidRuntime(1487): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
02-08 20:34:18.710: E/AndroidRuntime(1487): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
02-08 20:34:18.710: E/AndroidRuntime(1487): at java.net.Socket.connect(Socket.java:842)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
02-08 20:34:18.710: E/AndroidRuntime(1487): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
02-08 20:34:18.710: E/AndroidRuntime(1487): at com.example.aa.MainActivity.get(MainActivity.java:76)
02-08 20:34:18.710: E/AndroidRuntime(1487): at com.example.aa.MainActivity.access$1(MainActivity.java:68)
02-08 20:34:18.710: E/AndroidRuntime(1487): at com.example.aa.MainActivity$1.onClick(MainActivity.java:50)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.view.View.performClick(View.java:4204)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.view.View$PerformClick.run(View.java:17355)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.os.Handler.handleCallback(Handler.java:725)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.os.Handler.dispatchMessage(Handler.java:92)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.os.Looper.loop(Looper.java:137)
02-08 20:34:18.710: E/AndroidRuntime(1487): at android.app.ActivityThread.main(ActivityThread.java:5041)
02-08 20:34:18.710: E/AndroidRuntime(1487): at java.lang.reflect.Method.invokeNative(Native Method)
02-08 20:34:18.710: E/AndroidRuntime(1487): at java.lang.reflect.Method.invoke(Method.java:511)
02-08 20:34:18.710: E/AndroidRuntime(1487): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
02-08 20:34:18.710: E/AndroidRuntime(1487): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
02-08 20:34:18.710: E/AndroidRuntime(1487): at dalvik.system.NativeStart.main(Native Method)
02-08 20:34:18.710: D/dalvikvm(1487): GC_CONCURRENT freed 316K, 17% free 5482K/6528K, paused 2ms+3ms, total 26ms
http://www.2cto.com/kf/201310/248730.html
那么请问为什么我这样写还是不行?
我想实现访问网络并取得网络内容的函数方法。
比如
String httpget(String targetURL){
.....
.....
.....
return response;
}
public void run() {
//get方法,handler抛出结果
}
}).start();
那么请问为什么我这样写还是不行?
我想实现访问网络并取得网络内容的函数方法。
比如
String httpget(String targetURL){
.....
.....
.....
return response;
}
你需要将该方法放到一个新的thread或者HandlerThread中执行。或者使用AsyncTask,在 doInBackgroud中执行。