在使用协程时,如果在主线程上执行网络请求,会抛出NetworkOnMainThreadException(主线程网络异常)异常。这是因为主线程负责处理用户界面的更新和事件响应,如果在主线程上执行网络请求,会导致界面卡顿,影响用户体验。 为了解决这个问题,可以使用异步操作来执行网络请求,比如使用协程。协程是一种轻量级线程,可以在不阻塞主线程的...
https://www.cnblogs.com/lynchyo/p/3520328.html android.os.NetworkOnMainThreadException 这个异常大概意思是在主线程访问网络时出的异常。 Android在4.0之前的版本 支持在主线程中访问网络,但是在4.0以后对这部分程序进行了优化,也就是说访问网络的代码不能写在主线程中了。 为了把域名转化为ip地址,我在主线程...
出现Android.os.NetworkOnMainThreadException错误提示的原因 原因:不允许在主线程中进行网络访问 解决办法:将网络访问的操作单独放到一个线程中,代码如下: 代码语言:javascript newThread(@Overridepublicrun
方法1:非要在主线程中,当然也可以,这样去处理: StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads() .detectDiskWrites() .detectNetwork() // or .detectAll() for all detectable problems .penaltyLog() .build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() ....
NetworkOnMainThreadException 出现Android.os.NetworkOnMainThreadException错误提示的原因 原因:不允许在主线程中进行网络访问 解决办法:将网络访问的操作单独放到一个线程中,代码如下: newThread(){@Overridepublicvoidrun() {//把网络访问的代码放在这里}
第二种方法就是我使用的方法也是我要推荐的方法,将请求网络资源的代码使用Thread去操作。在Runnable中做HTTP请求,不用阻塞UI线程。 public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); this .setContentView(R.layout.main_view); ...
下面是解决android.os.NetworkOnMainThreadException异常的步骤: 接下来,我将逐步解释每个步骤需要做什么,并提供相应的代码示例。 步骤1:创建一个新的线程 我们需要创建一个新的线程来执行网络请求操作。在Android中,可以通过继承Thread类或者实现Runnable接口来创建线程。以下是使用Runnable接口创建线程的示例代码: ...
}}如何执行任务:在MainActivity.java文件中,您可以在oncreate()方法中添加此行new Retrieve...
自Android 4.0以后,网络连接不能放在主线程上,不然就会报这个错。 解决办法有两个: 办法一 在Activity的onCreate中加入允许的权限: StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); 办法二 在线程中执行网络请求 new Thread(new Runna...
Error "NetworkOnMainThreadException" usually occurs when a network request is in the MainThread class.Cause:In Android 3.0 and later versions, the program cannot access t