为什么我的代码不能在使用 Android activity 的 JSoup 库的 AsyncTask 中工作?

Why is my code not working in a AsyncTask using the JSoup library for my Android activity?

public class ConnectionTest extends AsyncTask<Void, Void, Void> {
    String connection;
    String loginFormUrl = "https://intranet.tam.ch/";
    @Override
    protected Void doInBackground(Void... voids) {
        try{
            Connection.Response loginForm = Jsoup.connect(loginFormUrl).method(Connection.Method.GET)
                    .execute();
            connection = loginForm.toString();
            System.out.print(title);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

我的 Activity 应该只在 TextView 中显示 connection。我也试过制作一个 Thread 并 运行 它在新 Thread 中,但它也不起作用。

这是我的Activity

public class Test extends AppCompatActivity {
TextView textView;
ConnectionTest connectionTest = new ConnectionTest();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    connectionTest.getWebsite();
    textView = findViewById(R.id.sdweedew);
    textView.setText(connectionTest.connection);
}

}

请检查此代码

private void getWebsite() {
 new Thread(new Runnable() {
  @Override
  public void run() {
    final StringBuilder builder = new StringBuilder();

    try {
      Document doc = Jsoup.connect("https://intranet.tam.ch/").get();
      String title = doc.title();
      Elements links = doc.select("a[href]");

      builder.append(title).append("\n");

      for (Element link : links) {
        builder.append("\n").append("Link : ").append(link.attr("href"))
        .append("\n").append("Text : ").append(link.text());
      }
    } catch (IOException e) {
      builder.append("Error : ").append(e.getMessage()).append("\n");
    }

    runOnUiThread(new Runnable() {
      @Override
      public void run() {
       textView.setText(builder.toString());
      }
    });
  }
}).start();

}

像这样更改您的 activity 代码,

我使用 TextView 来显示连接状态。

public class MainActivity extends AppCompatActivity {

    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        textView = findViewById(R.id.sdweedew);
        new ConnectionTest().execute();
    }


     class ConnectionTest extends AsyncTask<Void, Void, String> {

        String loginFormUrl = "https://intranet.tam.ch/";

        @Override
        protected String doInBackground(Void... voids) {
            try {
                Connection.Response loginForm = Jsoup.connect(loginFormUrl).method(Connection.Method.GET)
                        .execute();
                return loginForm.statusMessage();
            } catch (IOException e) {
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            if (textView != null) {
                textView.setText(s);
            }
            super.onPostExecute(s);
        }
    }
    }

并记得在清单文件中添加互联网权限。

<uses-permission android:name="android.permission.INTERNET" />