NetworkOnMainThreadException android 活动[重复]

2024-01-01

我正在使用此代码来检索 android 活动中的网站数据。它抛出 android.os.networkonmainthreadexception

    try
        {
            URL url = new URL("https://enigmatic-woodland-35608.herokuapp.com/pager.json");
            URLConnection tc = url.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    tc.getInputStream()));
            String line, newl = " ";
            while ((line = in.readLine()) != null) {
                newl += line.trim();
            }
            System.out.println("newl" + newl.trim());
        } catch (Exception e) {
            Log.e("exception", e.toString());
        }

请给我一个可能的解决方案..


网络操作/调用不能在主线程中完成。您需要从另一个线程、异步任务或意向服务运行它

注意:所有 UI 操作都应该在 onPostExecute,onPreExecute 完成

下面的代码或许可以帮助你解决。

在你想要的地方调用 AsyncTask

new PagerAsyncTask().execute();

class PagerAsyncTask extends AsyncTask<String,Void,String>{
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
            }

        @Override
        protected String doInBackground(String... params) {
            StringBuilder sb=null;
            BufferedReader reader=null;
            String serverResponse=null;
            try {

                URL url = new URL(""https://enigmatic-woodland-35608.herokuapp.com/pager.json"");
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                connection.setConnectTimeout(5000);
                connection.setRequestMethod("GET");
                connection.connect();
                int statusCode = connection.getResponseCode();
                //Log.e("statusCode", "" + statusCode);
                if (statusCode == 200) {
                    sb = new StringBuilder();
                    reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                    String line;
                    while ((line = reader.readLine()) != null) {
                        sb.append(line + "\n");
                    }
                }

                connection.disconnect();
                if (sb!=null)
                    serverResponse=sb.toString();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
            return serverResponse;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
           //All your UI operation can be performed here
            //Response string can be converted to JSONObject/JSONArray like
            JSONObject response=new JSONObject(s);
            System.out.println(s);
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NetworkOnMainThreadException android 活动[重复] 的相关文章

  • SharedPreferences - java.lang.Boolean 无法转换为 java.lang.String

    我对因不应该抛出的异常而感到困惑 错误如下 java lang ClassCastException java lang Boolean cannot be cast to java lang String 但是 我的代码不会尝试将布尔值转
  • Android 错误 - close() 从未在数据库上显式调用

    我应该在代码的哪里调用 close LogCat 返回此错误 close 从未在数据库上显式调用 android database sqlite DatabaseObjectNotClosedException 应用程序未关闭此处打开的游标
  • 您的手机中未安装应用程序

    我在模拟器中运行该应用程序 它成功运行 并且应用程序的图标显示在模拟器菜单中 但是当我尝试从模拟器菜单再次运行该应用程序时 它不允许我从中运行并显示 Toast 您的手机中未安装应用程序 在图像中 红色圆形是我的应用程序图标 如果您有您的M
  • Moshi 无法解析 nullable

    你好 希望你能帮助我 使用 kotlin Retrofit2 moshi 我从 https api spacexdata com v3 launches 获取数据并解析它 一切都很顺利 我得到的属性如下 flight number miss
  • onScale 和 Canvas - 缩放图像后如何调整原点?

    我有一个非常简单的测试应用程序 带有自定义组件MyView java https github com afarber android newbie blob master TestScroll src de afarber testscr
  • 如何在android中使用retrofit访问404错误?

    我正在使用改造 2 访问 REST API 以使用原始正文插入 JSON 数据 我从服务器获得成功响应 但在响应时收到 404 错误 我想访问404错误请帮我解决这个问题 ApiUtil getServiceClass sendFinalC
  • Android 闹钟应用程序在 Oreo 下因 NullPointerException 导致 SystemUI 崩溃(仅限)

    我有一个 Android 闹钟应用程序 我有通常的 警报意图 gt 接收器 gt 活动链 其最后一步创建一个全屏窗口并发出警报 所有这些在 Oreo API 26 之前的 Android 版本上都可以正常工作 但在 Oreo 上 当警报触发
  • 如何在android 4.2中显示选项菜单

    我正在尝试在我的测试应用程序中创建菜单选项 当我将清单中的主题设置为默认时 我可以看到菜单 菜单显示在顶部 如果我将清单中的主题设置为 NoTitleBar 我看不到菜单选项 我想在清单中设置主题 NoTitleBar 时获取菜单 如何修复
  • 如何解决 FireBase 数据库 Key 中的禁止字符或解决方法

    我有这个 FireBase 数据库结构 我真的很想拥有像这个例子这样的密钥 US name United States PATH TO STREETS US California Orange County Orange 3138 E Ma
  • MediaStyle 通知未响应 RemoteControl 事件。

    我们正在将正在进行的播放通知迁移到 Lollipop 中引入的 MediaStyle 通知 RemoteControlClient 似乎已被弃用 并且 MediaStyle 通知不处理媒体按钮事件 例如通过耳机远程暂停 播放 有人得到这个工
  • 将可渲染节点(相同的旋转、位置和比例)替换为 Sceneform sdk 中的另一个可渲染节点

    我是 Android 版 sceneform sdk 的新手 我已经添加了一个Transformable Node 然后我应用了一些旋转 缩放并改变了它的位置 现在 单击按钮后 我需要放置具有相同旋转 缩放和位置的第二个节点 为此我所做的是
  • Android 生命周期哪个事件在生命周期中只触发一次?

    我读过一些博客并访问了一些网站 我想知道哪个事件在生命周期中只触发了一次 阅读博客后我意识到onCreate 方法在生命周期内仅触发一次 我不知道我是对还是错 现在我的问题是 我想触发任何仅在我更改横向或纵向方向时触发一次的事件 而不是在启
  • Gradle创建多项目Jar

    因此 从 Gradle 和 Android Studio 诞生之初起 我就一直在使用它们 然而 我发现自己用头撞墙的次数有时远远超过了它的价值 我花了一天半的时间试图解决我目前的困境 在我工作的地方 我们使用很多共享库项目 这意味着与 Gr
  • 对话框片段中的 onActivityResult

    我正在从对话框片段中拍照 我还需要类似的东西startActivityForResult takePictureIntent actionCode Override public void onActivityResult int requ
  • 找不到元素“android.support.constraint.ConstraintLayout”的声明

    我创建了一个名为的 xml 文件activity main sw50dp 但是当我尝试验证它时 它给了我错误 错误 4 42 cvc elt 1 a 找不到元素 android support constraint ConstraintLa
  • 是否可以用 C# 为 Android 编写应用程序?

    我们都知道Android运行Dalvik VM程序 通常开发人员用 Java 编写程序并将其编译为 Dalvik 字节码 我想知道是否有可能创建一个可以接受 C 代码并将其编译为 Dalvik 字节码的编译器 嗯 这是一种选择 或者您可以在
  • 无法获取 android.permission.CLEAR_APP_USER_DATA

    我正在开发需要特殊权限的系统应用程序 由于某种原因 我无法获得 CLEAR APP USER DATA 权限 但我可以使用 INSTALL PACKAGES DELETE PACKAGES 等 什么可能导致这种情况 显现 uses perm
  • 如何使用 javascript 迭代文件系统目录和文件?

    我正在使用 Javascript 编写一个应用程序 该应用程序将与 Phonegap 一起使用来制作 Android 应用程序 我正在使用 Phonegap File API 来读取目录和文件 相关代码如下所示 document addEv
  • 数字时钟不改变时间

    我正在开发一个数字时钟小部件 我写了代码 但它没有更新时间 我没有使用任何服务并在模拟器中运行 我的代码如下 public class ExampleAppWidgetProvider extends AppWidgetProvider D
  • 如何获取在代码中 attrs.xml 中创建的枚举

    我创建了一个自定义视图 找到它here https bitbucket org informatic0re awesome font iconview 具有枚举类型的可声明样式属性 在 xml 中 我现在可以为我的自定义属性选择枚举条目之一

随机推荐

  • 为什么 isnan 含糊不清以及如何避免它?

    Since isnan可以是宏 在 C 98 中 或命名空间中定义的函数std 在 C 11 中 这个简单的示例说明了编写在两种情况下都有效的代码的明显 可能是天真的 方法 include
  • iOS Objective C 中的单例不会阻止多个实例

    我知道有几个关于此的主题 但没有一个回答我的问题 我已经像这样实现了我的单例类 意识到有关单例的争议 MyClass sharedInstance static MyClass sharedInstance nil static dispa
  • OpenIdDict 不从 .Net Core API 返回令牌

    我有一个 Net Core API 项目 我在其中使用 OpenIDDict 进行身份验证 我在那里提到官方存储库 https github com openiddict openiddict samples blob dev sample
  • 如何跟踪页面上的链接被点击的位置?

    我正在接管一个具有三列布局的网站的开发 左侧 菜单 内容横幅 主要 内容 右侧 内容横幅 他们 网站所有者 使用内容横幅来宣传重要内容 我试图让他们明白 根据人类阅读模式的 P 形状 位于右下角 右栏 底部 的项目实际上对访问者来说是不可见
  • 手动输入日期时 md-datepicker 显示错误

    我正在使用 md datepicker 当我手动输入日期时 它显示无效日期 但如果我从此控件中选择日期 则它会被验证 为此我使用了以下代码
  • 在 PHP Foreach 循环之外使用变量

    我试图在 foreach 循环之外输出用户名和用户电子邮件 我正在尝试向特定用户角色内的所有 WordPress 用户发送电子邮件 这是我的代码 Get users and their roles user args array role
  • Windows Phone 7 通过 wifi 接收 UDP 数据包(广播或单播)

    我已经看了好几天有关 Windows Phone 7 的各个论坛 但没有一个给我明确的答案 到目前为止 我还无法接收从通过 wifi 连接到 Windows Phone 7 设备 在模拟器上运行 的计算机发送的 UDP 数据包 既不是广播也
  • Uploadify:使用 scriptData 将表单的 ID 作为参数传递

    我需要能够使用 Uploadify 在一页上有多个上传输入 可能有数百个 上传 PHP 文件将根据用于提交文件的输入按钮的 ID 重命名上传的文件 因此它将需要该 ID 由于我将在一个页面上有数百个上传按钮 因此我想创建一个通用实例 因此我
  • 带有主查询数据变量的 MySQL 子查询

    好的 这里需要一位 MySQL 专家 我正在尝试编写一个查询 当有人对您之前评论过的项目发表评论时 该查询将充当通知系统 drinkComment 表非常简单 commentID userID drinkID datetime commen
  • Flex/bison,错误:未声明

    你好 我有一个问题 下面的程序返回一个错误 error Undeclared first use in function 为什么会出现这个错误所有令牌都被声明了 但是这个错误来了 任何人都可以帮助我 这里是 lex 和 yac 文件 谢谢
  • TortoiseHG 和 TortoiseSVN 一起玩得好吗?

    我先安装了TSVN 并使用了很长时间 然后我安装 T HG 当我右键单击时 我没有看到任何 TortoiseHG 有人有同样的问题吗 所有 T SVN 覆盖仍然存在 从版本 0 8 2009 07 01 发布 开始 TortoiseHg 支
  • 在.NET 中连接来自不同源数据库的两个数据表?

    如何在 NET 中连接来自不同源数据库的两个数据表 理想情况下 我可以手动创建两个查询并简单地连接到单个字段 在这种情况下 链接服务器和计划导入不是一个选项 我已经研究了数据关系对象 但是 如果我错了 请纠正我 这只适用于父子关系 我也遇到
  • WinDbg 在 MS 符号服务器上找不到 ntdll 的符号

    我正在尝试调试可执行文件 notepad exe 来自 Windows 10 发行版 并且需要来自 Microsoft 符号服务器的符号 ntdll pdb 但调试器返回错误 指出找不到指定的文件 0 000 gt reload Reloa
  • 我可以在 Schema.org 的一个项目范围中使用多个项目类型吗? [复制]

    这个问题在这里已经有答案了 我想知道是否可以在一个项目范围内使用多个项目类型 例如我现在有这个 div class wrapper p p p p div 当我在 Google 的 Web 开发人员工具中进行结构化数据测试时 它仅选取
  • Trirand jqGrid 未显示;类型错误:$(...).jqGrid 不是函数

    网格不显示 Firefox 控制台显示 类型错误 jqGrid 不是函数 ASP NET MVC 5 2 2 剃刀 jQuery 2 1 1 特兰德 jqGrid 4 6 0 我检查过其他类似的问题 每次问题看起来都不一样 要么是语法问题
  • 通过Spark SQL进行批量数据迁移

    我目前正在尝试通过 Spark SQL 将非常大的 MySQL 表的内容批量迁移到 parquet 文件中 但这样做时 即使将驱动程序的内存限制设置得更高 我在本地模式下使用 Spark 我也会很快耗尽内存 示例代码 Dataset
  • 如何在 Dart 中使用正则表达式?

    在 Flutter 应用程序中 我需要检查字符串是否与特定的正则表达式匹配 但是 我从应用程序的 JavaScript 版本复制的正则表达式always在 Flutter 应用程序中返回 false 我验证了regexr https reg
  • 尾随返回类型语法因 noexcept 说明符而失败?

    此代码按预期工作 void f noexcept 但在 GCC 4 7 2 中 以下操作会失败并出现错误 auto f gt void noexcept error expected initializer before noexcept
  • 在 C++ 中使用 std::bind 和 std::function 时出错[重复]

    这个问题在这里已经有答案了 我尝试在多元函数上尝试牛顿法的片段并使用std bind and std function 但我陷入了一个错误 错误 从 std Bind helper int gt type aka 进行转换 std Bind
  • NetworkOnMainThreadException android 活动[重复]

    这个问题在这里已经有答案了 我正在使用此代码来检索 android 活动中的网站数据 它抛出 android os networkonmainthreadexception try URL url new URL https enigmat