我想连接到一个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 ...
感谢您的帮助! :)
答案 0 :(得分:2)
在线程中写入url连接。
从Android API v15开始,它不需要在主线程上运行繁重的进程。因此,您应该将您的逻辑移动到另一个线程,如下面的源代码:
new Thread(new Runnable() {
public void run() {
// your logic
}
}).start();
更多信息请参阅http://developer.android.com/guide/practices/responsiveness.html
答案 1 :(得分:2)
您需要使用AsyncTask 打开网址连接。
请参阅以下链接,例如:
http://www.vogella.com/articles/AndroidPerformance/article.html
http://androidresearch.wordpress.com/2012/03/17/understanding-asynctask-once-and-forever/
答案 2 :(得分:1)
您可以使用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 policy = new StrictMode.ThreadPolicy.Builder()。permitAll()。build(); StrictMode.setThreadPolicy(策略);