我知道导致NetworkOnMainThreadException的原因以及如何修复它,但为了改善开发体验,我希望能够捕获异常并至少记录事件或提醒用户(谁仍然是此时的开发人员)...
奇怪的是,我没有运气这个代码(通过我的TCP套接字发送和接收):
try
{
toServer.println (msg.trim());
resp = fromServer.readLine();
}
catch (android.os.NetworkOnMainThreadException nex)
{ ... do something here ... }
Run Code Online (Sandbox Code Playgroud)
Eclipse完全没有识别出异常,我从Android开发者网站上复制了异常类型 - 我很确定我拼写正确...
是否有一些我不了解的Java(也许)会让这个异常无法捕获?
谢谢,R.
是否有一些我不了解的Java(也许)会让这个异常无法捕获?
是的,StrictMode让它无法捕捉.无论哪种方式,虽然,你应该不捕获此异常.相反,您应该通过将代码包装在一个代码中来正确实现代码AsyncTask.抛出此异常的原因是为了防止您通过阻止UI线程来降低应用程序的速度.
阅读我的博客文章了解更多信息:
| 归档时间: |
|
| 查看次数: |
448 次 |
| 最近记录: |