0
try {
    HttpClient client = new DefaultHttpClient();
    HttpGet get = new HttpGet("http://app2.nea.gov.sg/anti-pollution-radiation-protection/air-pollution/psi/psi-readings-over-the-last-24-hours");
    HttpResponse response;

    response = client.execute(get);
    Toast.makeText(MainActivity.this, "WAD", Toast.LENGTH_SHORT).show();
    HttpEntity entity = response.getEntity();

    InputStream in = entity.getContent();
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    StringBuilder sb = new StringBuilder();
    String line = null;
    while ((line = reader.readLine()) != null) {
        sb.append(line+"\n");
    }
    in.close();
    charset = sb.toString();
    tv.setText(charset);
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

この行では、

応答 = client.execute(get);

プログラムはコードを続行していないようです。そこでハングアップし、何もしません。

インターネットのアクセス許可を宣言しましたが、何が問題なのかわかりませんか?

4

1 に答える 1

2

あなたはそれについて何も言及しておらず、あなたの質問からは明らかではありませんが、メイン アプリケーション スレッドでネットワーク操作を実行している可能性があります。

これにより、Android 3.0 以降でテストしている場合はNetworkOnMainThreadExceptionが発生しますが、以前のバージョンではユーザー インターフェイスが「ハング」/「フリーズ」します。これを回避するには、すべてのネットワーク操作を常に非 UI スレッド ( AsyncTaskなど) で実行します。

于 2013-06-26T16:28:26.683 に答える