-5

したがって、以下のスクリーンショットに、Type IOExceptions を引き起こしているコードのこのセクションがあります。

http://southwestdesign.org.uk/Code.jpg

それをtry-catchブロックでラップする必要があると言われました。個々のブロックをtry catchでラップするとエラーが解消されますが、Androidでは強制終了します。誰かが私を正しい方向に向けてもらえますか?

@Override
    public void onStart() {
        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet("http://1.php");
        HttpResponse response = client.execute(request);
        BufferedReader rd = new BufferedReader
        (new InputStreamReader(response.getEntity().getContent()));
        TextView textView = (TextView) findViewById(R.id.TextView1);
        String line = "";
        while ((line = rd.readLine()) != null) {
            textView.append(line);
        }
    }

みんなありがとう。

4

3 に答える 3

4

UIスレッドでNetwork IOを実行しているようですが、これは悪い考えです。そのため、Android 2.3 以降、システムはこれを「キャッチ」してプロセスを強制終了します。

あなたは置くべきです

 HttpResponse response = client.execute(request);

たとえば、AsyncTask.

于 2012-10-28T17:21:24.607 に答える
0

次のようになります。

@Override
    public void onStart() {

   try {
    HttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet("http://1.php");
    HttpResponse response = client.execute(request);
    BufferedReader rd = new BufferedReader
    (new InputStreamReader(response.getEntity().getContent()));
    TextView textView = (TextView) findViewById(R.id.TextView1);
    String line = "";
    while ((line = rd.readLine()) != null) {
        textView.append(line);
    }

    }catch (IOException ex){
    }
}

より好ましくはAsyncTask、これを別のスレッドで実行するために使用します。

于 2012-10-28T17:21:16.303 に答える
0
try {

   //do something here
   //call method

}catch (IOException ioe){

// do something else
// log ioe

}
于 2012-10-28T17:19:55.467 に答える