Android开发者网站关于android.os.networkonmainthreadexception的描述
http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html
The exception that is thrown when an application attempts to perform a networking operation on its main thread. This is only thrown for applications targeting the Honeycomb SDK or higher. Applications targeting earlier SDK versions are allowed to do networking on their main event loop threads, but it's heavily discouraged.
原来,在Android3.0(Honeycomb SDK)以后就不允许在主线程下直接操作网络了。因为网络操作可能导致界面无响应Application Not Responding (ANR) 。
http://developer.android.com/guide/practices/responsiveness.html
In Android, application responsiveness is monitored by the Activity Manager and Window Manager system services. Android will display the ANR dialog for a particular application when it detects one of the following conditions:
- No response to an input event (e.g. key press, screen touch) within 5 seconds
- A
BroadcastReceiverhasn't finished executing within 10 seconds
网上说道,有两种解决方法:
一种是启用 StrictMode
另一种是使用 Thread
一般情况下还是使用线程好些
本文详细解析了Android3.0(Honeycomb SDK)之后禁止在主线程进行网络操作的原因,以及可能导致的界面无响应问题。提出了两种解决方案:启用StrictMode或使用线程避免ANR情况。
2644

被折叠的 条评论
为什么被折叠?



