1
try {
    URL url = null;
    url = new URL(url_string);
    URLConnection conn = url.openConnection();
    BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line="";
    while((line = reader.readLine())!=null){
        Log.d("html",line);
    }

} catch (Exception e) {
    Log.d("Exception Error: ",e.toString());
}

私は単にウェブサイトを読んでいるだけで、android.os.networkonmainthreadexception でエラーが発生しています

私のコードはとてもシンプルです..見てください、そして私が何をする必要があるか教えてください..

ありがとう、

4

2 に答える 2

3

などを介して、ネットワーク アクセスをバックグラウンド スレッドに移動する必要がありますAsyncTask。現在、メイン アプリケーション スレッドでネットワーク I/O を実行しようとしていますが、これはお勧めできません。

于 2012-11-17T20:14:06.310 に答える
0

このクラスを使用して、バックグラウンド タスクを実行します。

    public class getConnection extends AsyncTask<String, Void, Void> 
    {


           @Override
            protected void onPreExecute() 
           {
               super.onPreExecute();
               Utils.clearDialogs();
               Utils.showActivityViewer(Mainctivity.this);
           }

           @Override
           protected Void doInBackground(String... arg0)
           {

            try 
            {

               URL url = null;
url = new URL(url_string);
URLConnection conn = url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line="";
while((line = reader.readLine())!=null){
    Log.d("html",line);
            } 
            catch (Exception e) 
            {
             e.printStackTrace();
            }

            return null;
           }

           @Override
           protected void onPostExecute(Void result)
           {
               super.onPostExecute(result);
               Utils.hideActivityViewer();

            }
            catch (Exception e)
            {
             Log.v("log", e.toString());
            }
           }

          }
于 2012-11-17T20:31:22.670 に答える