2012-11-01 2 views
1

URL에 연결하고 그 후에 연결을 끊고 싶습니다. 하지만 안드로이드 4.1에 대한 업데이트 (2.3.7 이전에 작동) 이후에는 더 이상 작동하지 않습니다! :/URL 연결 - 연결 없음

왜?

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의 - 테이블에 삽입 지적 ... 도움말

감사 : 나도 몰라! :)

+0

오류가 있습니까? – ckpatel

+2

Android 3.0, 기본 UI 스레드에서 URL 연결을 열 수 없습니다. AsyncTask에서이 작업을 수행해야합니다. 또는 새 스레드를 만들고 스레드를 사용하십시오 .run – steevoo

+0

나는 문제를 해결합니다. – ckpatel

답변

2

쓰기 url 연결 스레드.

Android API v15에서 메인 스레드에서 작동하는 무거운 프로세스가 필요 없습니다. 그래서 당신은 노호 소스 코드와 같은 다른 스레드에 논리를 이동해야합니다 :

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

상세 정보 당신은 URL 연결을 열고 AsyncTask 를 사용할 필요가 http://developer.android.com/guide/practices/responsiveness.html

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

은 또는 당신 mainthread 제한에 더 네트워킹을 비활성화 할 수 있지만, 이것은 일반적으로 나쁜 생각을 고려, 아마 장난으로 밖에 사용할 수 없습니다.

StrictMode.ThreadPolicy 정책 = 새로운 StrictMode.ThreadPolicy.Builder() permitAll() (빌드)..; StrictMode.setThreadPolicy (policy);