首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >URL连接-无连接

URL连接-无连接
EN

Stack Overflow用户
提问于 2012-11-01 20:57:06
回答 3查看 991关注 0票数 2

我想连接到URL并在那之后断开连接。但在我的Android 4.1 (以前在2.3.7上有效)更新后,它不再工作了!:/

为什么?我不知道:

代码语言:javascript
复制
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中插入了备注...

感谢您的帮助!:)

EN

回答 3

Stack Overflow用户

发布于 2012-11-01 21:05:33

在线程中写入url连接。

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

代码语言:javascript
复制
new Thread(new Runnable() {
   public void run() {
        // your logic
   }                        
}).start();

更多信息,请访问http://developer.android.com/guide/practices/responsiveness.html

票数 2
EN

Stack Overflow用户

发布于 2012-11-01 21:09:23

您需要使用AsyncTask打开url连接。

例如,请参阅以下链接:

http://www.vogella.com/articles/AndroidPerformance/article.html

http://androidresearch.wordpress.com/2012/03/17/understanding-asynctask-once-and-forever/

票数 2
EN

Stack Overflow用户

发布于 2012-11-01 21:28:32

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

代码语言:javascript
复制
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.Builder().permitAll().build();策略( StrictMode.ThreadPolicy );

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13177578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档