java - 从 Java/Android 中的 Web 服务检索数据。 android.os.NetworkOnMainThreadException

标签 java android http networking

以下代码用于从我的网络服务获取数据并将其存储在我的应用程序中:

//GET APP INFORMATION
public static String getAppInformation() {

    String data = "";
    //test the get method data retrieval using the HttpRequest Class

    try {
        data = makeHttpRequest("http://www.mywebsite.com/abc.php?action=abc.get");

    } catch (Exception e) {
        e.printStackTrace();
    }

    return data;
}

如何停止获取“android.os.NetworkOnMainThreadException”异常并返回数据变量?

最佳答案

从线程调用 getAppInformation,而不是从 oncreate()

class CallDemo extends Thread
{
  public void run()
  {
        getAppInformation()
  }
}

以及来自 oncreate()

 new CallDemo().start();

通过使用asynctask

class DemoClass extends AsyncTask<String, Void, String>
{

    @Override
    protected String doInBackground(String... params) {
        // TODO Auto-generated method stub

        String result=getAppInformation();

        return result;
    }

}

和oncreate代码

try
    {
        DemoClass d=new DemoClass();
        d.execute("");
        String data=d.get();
    }
    catch(Exception e)
    {

    }

关于java - 从 Java/Android 中的 Web 服务检索数据。 android.os.NetworkOnMainThreadException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27294674/

相关文章:

java - 如何在不创建新适配器等的情况下更新ListView中的ListItems

android - Android 中的 Jackson 解析

java - 当向表中添加超过 12 个对象时,LibGDX 游戏在 Android 上崩溃

Android "first time"app用户教程

javascript - 从 HTTPS 网页访问的 localhost HTTP。为什么没有 "Mixed Content"错误?

php - laravel - 从 http 请求中获取参数

java - 这里的内存复杂度是O(1)还是O(N)?

java - 构造函数 csvreader(reader char) 已弃用错误

java - 带有左右箭头指示器的水平回收器 View

java - 如何获取整个http post的值?解析 Restful 帖子