在android 2.3上设计的下载程序,在android 4.0上运行时报android.os.NetworkOnMainThreadException异常,原来在4.0中,访问网络不能在主程序中进行,有两个方法可以解决。

  一个是在主程序中增加:

// 详见StrictMode文档
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()  .detectDiskReads()  .detectDiskWrites()  .detectNetwork()   // or .detectAll() for all detectable problems  .penaltyLog()  .build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()  .detectLeakedSqlLiteObjects()  .detectLeakedClosableObjects()  .penaltyLog()  .penaltyDeath()  .build());

   另一种是启动线程执行下载任务:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);  setContentView(R.layout.main);  // 启动线程执行下载任务  new Thread(downloadRun).start();  }  /** * 下载线程 */  Runnable downloadRun = new Runnable(){  @Override
public void run() {  // TODO Auto-generated method stub  updateListView();
}  };

  

Android中SharedPreferences的模式

MODE_MULTI_PROCESS这个值是一个标志,在Android 2.3及以前,这个标志位都是默认开启的,允许多个进程访问同一个SharedPrecferences对象。而以后的Android版本,必须通过明确的将MODE_MULTI_PROCESS这个值传递给mode参数,才能开启多进程访问。

我们在获得SharedPreferences的时候,需要判断一下SDK的版本号:

int __sdkLevel = Build.VERSION.SDK_INT;
SharedPreferences __sp = $context.getSharedPreferences(SETTING_NAME, (__sdkLevel > Build.VERSION_CODES.FROYO) ? 4 : 0);

  

转载于:https://www.cnblogs.com/renyuan/archive/2012/10/30/2746389.html

Android中网络编程出错相关推荐

  1. Android中网络编程

    在Android中几种网络编程的方式: (1)针对TCP/IP的Socket.ServerSocket (2)针对UDP的DatagramSocket.DatagramPackage.这里需要注意的是 ...

  2. (转)Android中JNI编程的那些事儿

    Android中JNI编程的那些事儿 首先说明,Android系统不允许一个纯粹使用C/C++的程序出现,它要求必须是通过Java代码嵌入Native C/C++--即通过JNI的方式来使用本地(Na ...

  3. Android之网络编程利用PHP操作MySql插入数据(四)

    因为最近在更新我的项目,就想着把自己在项目中用到的一些的简单的与网络交互的方法总结一下,所以最近Android网络编程方面的博文会比较多一些,我尽量以最简单的方法给大家分享,让大家明白易懂.如果有什么 ...

  4. Android之网络编程之网络通信几种方式实例分享

    这篇文章主要介绍了android 网络编程之网络通信几种方式,有需要的朋友可以参考一下 现在总结了六种方式: (1)针对TCP/IP的Socket.ServerSocket (2)针对UDP的Data ...

  5. Android基础——网络编程

    网络编程 网络编程是什么? WebView HttpURLConnection访问网络 HttpURLConnection最佳用法 网络编程是什么? 网络编程指Android系统使用http协议和服务 ...

  6. Android中网络使用

    Android中判断网络连接是否可用 一.判断网络连接是否可用 public static boolean isNetworkAvailable(Context context) { Connecti ...

  7. linux中网络编程1

    1 网络编程API (1)网络层的ip地址可以唯一标识网络中的主机,传输层通过协议+端口唯一标识主机中的应用程序.这样以来使用三元组(地址,协议,端口)标识网络的进程. (2)socket---> ...

  8. Ubuntu中网络编程的环境配置

    <UNP>中源代码的编译和使用 (2010-10-16 21:13)转载   分类: 网络相关     最近看了下<UNIX网络编程>,就想把里面的源代码搞过来运行下.以前也搞 ...

  9. android ping网络连接服务器失败,Android 中网络连接检测和使用ping检测网络是否可访问...

    Android开发中网络相关的检测包括网络是否正常连接和网络已连接但是否可以正常访问两类. (1)其中最常用的就是网络连接是否正常的检测,具体的代码如下:ConnectivityManager con ...

最新文章

  1. C#中String与 StringBuilder 的区别
  2. 记录SpringBoot集成Shiro使用Redis作缓存遇到的一个问题(Key-Value)互换
  3. nagios利用pyfetion报警最新
  4. 计算机专业需要转正定级吗,全日制本科考进事业单位,没有取得初级资格职称,转正后能直接聘用为专业技术十二级岗位吗?...
  5. Linux时间子系统之二:表示时间的单位和结构【转】
  6. 斯诺登:FBI需要苹果帮助才能解锁iPhone完全扯淡
  7. jquery实战--定宽
  8. 网络基础2-3(TCP协议,三次握手,四次挥手,TIME_WAIT状态的作用,TCP如何保证可靠传输,TCP连接中状态转化,滑动窗口,流量控制,快速重传,拥塞窗口,延迟应答,捎带应答,粘包问题)
  9. xml与oracle对比,Oracle XML DB和DB2 pure XML在XML文档存储查询性能方面的比较分析
  10. 外设驱动库开发笔记8:GPIO模拟I2C驱动
  11. python时间函数的使用
  12. 存储图片到第三方云服务器
  13. linux 蓝牙管理软件,Blueman - Ubuntu的蓝牙管理器
  14. 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法.
  15. 商务部都在努力为直销行业创造良好的发展环境,你还在等什么?
  16. win7空文件夹删不掉的原因及解决方法
  17. 小程序身份证号码保留前后4位其他用“*”代替
  18. 知识图谱-生物信息学-医学顶刊论文(Bioinformatics-2022)-SGCL-DTI:用于DTI预测的监督图协同对比学习
  19. iOS-AppStore 审核加速
  20. 【苦练基本功】代码整洁之道 pt4(第10章-第12章)

热门文章

  1. 057_Unicode字符官方标准八
  2. python中提供怎样的内置库、可以用来创建用户界面_Python程序设计案例课堂第二篇核心技术第十章图形用户界面...
  3. python转go_如何看待将Python代码转换成Go代码并进一步编译的 Grumpy 项目?
  4. python解压文件_使用Python实现文件压缩和解压
  5. Android应用坐标系统全面详解
  6. Euro Truck Simulator 2欧洲卡车模拟2用VR玩
  7. 表达式树 php,Linux_LINQ学习笔记:表达式树,构建查询表达式 本节中, 我们 - phpStudy...
  8. mysql 1418 错误原因及解决
  9. 6.ajax应用,ajax应用
  10. taro引入f2图表_Package - taro-f2