2
private String getHttpResponse(String lName,String consultancyArea,String fName,String hospitalName,String date,String time){
        String names="a";
        System.out.println("iside httprespons");
            HttpParams httpParams=new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(httpParams, 30000);
            HttpConnectionParams.setSoTimeout(httpParams,30000);
            HttpClient httpClient=new DefaultHttpClient(httpParams);
            HttpPost httpPost=new HttpPost("url");

    try{
        List<NameValuePair> nameValuePairs=new ArrayList<NameValuePair>(6);
        nameValuePairs.add(new BasicNameValuePair("LName", lName));
        nameValuePairs.add(new BasicNameValuePair("ConsultancyArea", consultancyArea));
        nameValuePairs.add(new BasicNameValuePair("fName", fName));
        nameValuePairs.add(new BasicNameValuePair("hospitalName",hospitalName));
        nameValuePairs.add(new BasicNameValuePair("date", date));
        nameValuePairs.add(new BasicNameValuePair("time", time));
        httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));



        HttpResponse httpResponse=httpClient.execute(httpPost);
        String result=inputStreamToString(httpResponse.getEntity().getContent()).toString();
        JSONObject jasonObejct=new JSONObject(result);
        String name1 = jasonObejct.getString("myData");

        names=name1;


    }catch (JSONException e) {
         System.out.println("network error ocured1");
           e.printStackTrace();

      }catch(ConnectTimeoutException e){
          System.out.println("network error ocured2");
      }
    catch(java.net.SocketTimeoutException e){
          System.out.println("network error ocured2");
          e.printStackTrace();
      }
      catch (ClientProtocolException e) {
          System.out.println("network error ocured2");
       e.printStackTrace();
       System.out.println("network error  ocured");
      } 
      catch (IOException e) {

          System.out.println("network error ocured3");
       e.printStackTrace();
      }
    return names;
}

リモートサーバーからデータを取得するAndroidアプリケーションを開発しています。サーバーが応答しなかった場合に、アクティビティ マネージャーがアクティビティをフリーズする前に、接続をタイムアウトしてプロセスを終了したいと考えています。私が必要としているのは、サーバー障害の場合に Android アクティビティ マネージャーがアクティビティをフリーズする前にプロセスを終了する方法です。

4

1 に答える 1

0

AsyncTask を使用して、コードを doInBackground メソッドに貼り付けます。onPreExecute および onPostExecute メソッドは UI スレッドで動作しますが、doInBackground は別のスレッドを作成します。

于 2013-08-13T16:40:48.443 に答える