Java 在从其他类创建时调用静态字符串

Java 在从其他类创建时调用静态字符串,java,android,Java,Android,如何在onCreate中调用getContent? 我会犯这样的错误 E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity: android.os.NetworkOnMainThreadException Caused by: android.os.NetworkOnMainThreadException main.java protected void onCr

如何在onCreate中调用getContent? 我会犯这样的错误

E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity: android.os.NetworkOnMainThreadException
Caused by: android.os.NetworkOnMainThreadException
main.java

protected void onCreate(Bundle savedInstanceState) {
    Log.d("URL", HttpUtils.getContents("http://google.com"));
}
HttpUtils.java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class HttpUtils {

  public static String getContents(String url) {
        String contents ="";

  try {
        URLConnection conn = new URL(url).openConnection();

        InputStream in = conn.getInputStream();
        contents = convertStreamToString(in);
   } catch (MalformedURLException e) {
        Log.v("MALFORMED URL EXCEPTION");
   } catch (IOException e) {
        Log.e(e.getMessage(), e);
   }

  return contents;
}

private static String convertStreamToString(InputStream is) throws UnsupportedEncodingException {

      BufferedReader reader = new BufferedReader(new    
                              InputStreamReader(is, "UTF-8"));
        StringBuilder sb = new StringBuilder();
         String line = null;
         try {
                while ((line = reader.readLine()) != null) {
                        sb.append(line + "n");
                }
           } catch (IOException e) {
                e.printStackTrace();
           } finally {
                try {
                        is.close();
                } catch (IOException e) {
                        e.printStackTrace();
                }
            }
        return sb.toString();
  }
}

在android中,你不能在UI线程上执行任何网络任务。因此,您必须在不同的线程上执行联网任务。为此,您可以使用普通java线程,但在android中这不是一个好方法。您应该使用异步任务

你可以在谷歌上学习任何好的教程