Android 文件上传,解决NetworkOnMainThreadException问题!
2013-12-01 19:58
330 查看
大家都知道,android上传文件是需要模拟表单网页表单。
在此先不说模拟表单的事。
今天终于也是遇到这个问题了。下面先介绍问题由来:
NetworkOnMainThreadException,对于这个拼凑起来的句子一样的单词,大家肯定是可以猜出大概意思,就是 主线程中网络访问异常。
为什么主线程中访问网络会有异常捏?
大概是从android-9之后吧,有一个关于主ui进程中不能访问网络以防造成ui加载阻塞,大概就是这样。
解决方法:
方法一:(亲测成功)
申明,
把以下两块代码写到您的Oncreate(){ }中,也可以只写第一个。
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());
方法二:()
启用新线程,
java中的线程大家都会用,在此不说,在android中有一个handler的东西也很好用:
原本一个简单的上传文件,如果不知道有这么一档子事又会耽误很多功夫,所以做应用也不是一个简单的工作,当各种情况都能独立通过文档解决的时候,才是精通!
在此先不说模拟表单的事。
今天终于也是遇到这个问题了。下面先介绍问题由来:
NetworkOnMainThreadException,对于这个拼凑起来的句子一样的单词,大家肯定是可以猜出大概意思,就是 主线程中网络访问异常。
为什么主线程中访问网络会有异常捏?
大概是从android-9之后吧,有一个关于主ui进程中不能访问网络以防造成ui加载阻塞,大概就是这样。
解决方法:
方法一:(亲测成功)
申明,
把以下两块代码写到您的Oncreate(){ }中,也可以只写第一个。
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());
方法二:()
启用新线程,
java中的线程大家都会用,在此不说,在android中有一个handler的东西也很好用:
Activity..
private Handler handler;
OnCreate(..){
.....
handler=new Handler(); handler.post(runnable); }//end of OnCreate() Runnable runnable=new Runnable() { public void run() { Log.i(TAG, "runnable run"); uploadFile(file); handler.postDelayed(runnable, 5000); } };
原本一个简单的上传文件,如果不知道有这么一档子事又会耽误很多功夫,所以做应用也不是一个简单的工作,当各种情况都能独立通过文档解决的时候,才是精通!
相关文章推荐
- 「NetworkOnMainThreadException」:Android 2.3到Android 4.0上传文件的问题
- Android 关于“NetworkOnMainThreadException”问题的原因分析及解决办法
- Android Eclipse工程开发中的常见调试问题(二)android.os.NetworkOnMainThreadException 异常的解决办法
- android:从互联网上下载txt文件时出现NetworkOnMainThreadException的解决方法
- 如何解决安卓网络主线程异常的问题:Caused by: android.os.NetworkOnMainThreadException [duplicate]
- 手把手教你解决android网络请求问题:android.os.NetworkOnMainThreadException
- 解决android.os.NetworkOnMainThreadException
- Android 关于“NetworkOnMainThreadException”出错提示的原因及解决办法
- AndroidRuntime(1185): android.os.NetworkOnMainThreadException 异常解决
- Caused by: android.os.NetworkOnMainThreadException错误解决办法(强制主线程做网络请求)
- 解决android程序中出现android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException异常解决办法
- 【转】Caused by: android.os.NetworkOnMainThreadException错误解决办法
- [Android开发那点破事]解决android.os.NetworkOnMainThreadException
- Android之NetworkOnMainThreadException 解决方法
- 解决android.os.NetworkOnMainThreadException
- android.os.networkonmainthreadexception怎么解决
- Android NetworkOnMainThreadException异常原因及解决办法
- 【Android开发那点破事】解决android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException错误解决办法