Vai*_*hra 2 android android-strictmode
我的目标sdk设置为3.2,min sdk设置为2.2,我如何在我的应用程序中使用strictmode,因为据我所知它已经介绍但无法真正理解如何开始使用它.
小智 18
StrictMode.ThreadPolicy 自API级别9开始引入,并且自API级别11以来默认的线程策略已更改,简而言之,不允许网络操作
(例如:HttpClient和HttpUrlConnection)在UI线程上执行.如果你这样做,你得到NetworkOnMainThreadException.
您可以通过两种方式轻松解决此错误: -
解决此问题的推荐方法是使用,anAsyncTask以便网络请求不会阻止UI线程.
或者,您可以通过将以下代码添加到主活动的onCreate()方法中来覆盖此线程策略.
Run Code Online (Sandbox Code Playgroud)if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); }
希望这对你有所帮助..
我的建议是双重的:
首先,添加一些基线StrictMode代码到你的应用程序的onCreate().这使您可以轻松地将StrictMode应用于整个应用程序(尽管您可以将此代码放在任何位置以进行更具体的测试).StrictMode文档中有很好的示例代码.
其次,在尝试使用StrictMode之前检测SDK的版本.这样,您只能在API 9或更高版本中使用StrictMode - 如果您不进行此项检查,则会在较旧版本的Android上崩溃您的应用.您可以通过查看Build.VERSION.SDK_INT轻松检测SDK版本.
(可选)您可能只想在测试时启用StrictMode.你如何做到这一点取决于你,尽管我过去曾为此写过一个解决方案.
| 归档时间: |
|
| 查看次数: |
20148 次 |
| 最近记录: |