【问题标题】:URL Connection - no connectionURL 连接 - 无连接
【发布时间】:2012-10-22 01:40:56
【问题描述】:

我想连接到一个 URL,然后断开连接。但是在我对 Android 4.1 的更新(之前在 2.3.7 上工作)之后,它不再工作了! :/

为什么?我不知道:

public void insert_into_Mysql() {
    URL url = new URL("http://***/insertOrder.php?product="+product+"&owner="+owner);
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    try {
        openActivityOverview(product);  
    } finally {
        urlConnection.disconnect();
    }

注意在MySql-Table中插入...

感谢您的帮助! :)

【问题讨论】:

  • Android 3.0,在主 UI Thread 中打开 url 连接是不合法的。您必须在 AsyncTask 中执行此操作。或创建新线程并使用线程 .run
  • 谢谢!但是我找不到任何方法可以做到这一点。我用谷歌搜索了很多,但没有任何效果!有人知道我该怎么做吗? :)

标签: android mysql http url connection


【解决方案1】:

在线程中写入url连接。

从 Android API v15 开始,它不需要在主线程上运行繁重的进程。所以你应该把你的逻辑移到另一个线程,比如下面的源代码:

new Thread(new Runnable() {
   public void run() {
        // your logic
   }                        
}).start();

更多信息请参考http://developer.android.com/guide/practices/responsiveness.html

【讨论】:

    【解决方案2】:
    【解决方案3】:

    您可以使用 AsyncTask 执行后台操作,例如联网。

    private class ATask extends AsyncTask
    {
    
        public ATask()
        {
        }
    
        @Override
        protected Object doInBackground(Object... params) 
        {
            // Background logic here.
            return null;
        }   
    
        @Override
        protected void onPostExecute(Object result) 
        {
            // Foreground logic here.
        }
    }
    

    或者,您可以禁用主线程上的无网络限制,但这通常被认为是一个坏主意,并且可能不应该在玩耍之外使用。

    StrictMode.ThreadPolicy 策略 = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 2013-04-29
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 2016-10-18
      • 2014-03-01
      相关资源
      最近更新 更多