2

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 に注記が挿入されます...

手伝ってくれてありがとう!:)

4

3 に答える 3

2

URL接続をスレッドに書き込みます。

Android API v15 から、メイン スレッドで動作する重いプロセスは必要ありません。したがって、次のソース コードのような別のスレッドにロジックを移動する必要があります。

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

詳細については、http://developer.android.com/guide/practices/responsiveness.html を参照してください

于 2012-11-01T13:05:32.980 に答える
2

URL 接続を開くには、 AsyncTaskを使用する必要があります。

たとえば、以下のリンクを参照してください。

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

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

于 2012-11-01T13:09:23.057 に答える
1

You can use AsyncTask to perform background operations such as networking.

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.
    }
}

Alternatively you can disable the no networking on mainthread restriction, but this is generally considered a bad idea, and probably should not be used outside of playing around.

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

于 2012-11-01T13:28:31.987 に答える