android.os.NetworkOnMainThreadException
来源:互联网 发布:linux用户修改密码 编辑:程序博客网 时间:2024/05/16 17:35
android.os.NetworkOnMainThreadException这个异常
也就是说不能在主线程中执行网络操作
解决方案:
①,
②,使用线程执行下载任务
class DownloadTxtListener implements OnClickListener {
public void onClick(View v) {
new Thread(downloadRun).start();
}
}
Thread downloadRun = new Thread() {
@Override
public void run() {
down();
}
};
private void down(){
HttpDownloader httpDownloader = new HttpDownloader();
String lrc = httpDownloader.download("http://www.baidu.com");
}
来自;
给 Android 应用开发者的十个建议:
2)让阻塞操作远离主 UI 线程
通过使用 AsyncTask、线程、IntentService 和自定义后台服务,保证应用的灵活性。使用加载工具简化游标等长时间加载数据的状态管理。当有其他程序运行时,不能让你的应用滞后或中止。
如果一个操作需要消耗较多时间和资源时,取消该操作,换成异步处理,这样应用就能保持响应,用户可以继续各种操作。该方法适用磁盘读写、访问内容提供方、数据库和互联网,以及解析和其他需要花费较长时间的任务。
3)使用最新的 Android SDK 版本和 API
使用 Android 平台的最新产品,保证你的应用紧跟 Android 的更新步伐。随着 Android 平台的不断发展,部分功能可能被弃用或被更好的功能取代,核心 API 接收了 bug 修复和性能改进,新 API 有助于开发者编写出更稳定的应用。要明白最佳的做法总是随着时间的推移而变,聪明的开发者应该总是站在整个平台的最前沿。
4)考虑使用 StrictMode
从 Android 2.3 开始提供了一个新的类 StrictMode,该类可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者改进程序,使主线程处理 UI 和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞。
5)发布前禁用或尽量减少调试
如果开发周期较长,你很可能在应用中内置了一些日志或调试代码,在发布前确保这些功能已经最小化或完全禁用。
6)确保 UI 布局简单优雅
简单的屏幕不仅方便阅读,还能加快加载速度。与其在一个单一屏幕上堆砌太多不必要的功能,不如花时间去开发优雅的用户界面。简单优雅的 UI 不仅能提高应用性能,还能提高用户使用该应用时的效率。
9)使用 layoutopt 进行布局优化
Layoutopt 是一款简单的命令行工具,可帮助找到不必要的控件嵌套以及缩减布局资源,从而使应用变得可能“苗条”。控件越少、布局层次越浅,性能就越好。
- android.os.NetworkOnMainThreadException问题
- android.os.NetworkOnMainThreadException问题
- android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException异常
- 关于android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException
- 异常:android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException异常
- android.os.NetworkOnMainThreadException
- exception: android.os.NetworkOnMainThreadException
- 异常:android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException
- 异常android.os.NetworkOnMainThreadException
- SQLite 数据库介绍
- Nginx架构概述
- linux下文件的权限(老师所讲)
- 『季末私语』留给我一地落花..是你的笑
- Android 仿蘑菇街列表弹出和瀑布流 (ScrollView+RelativeLayout实现)
- android.os.NetworkOnMainThreadException
- 按键控制蜂鸣器--采用中断方式(3)
- c# GDI+简单绘图(一)
- 数字电子技术课程设计——盲人报时钟
- 最大空间序列 C语言实现
- Android四大基本组件
- c#获取数据库中所有表名称的方法
- C# 连接 Oracle 的几种方式
- iPhone5专用可爱鲸鱼手机壳 尾巴用处多