java - 为什么我的代码无法在使用 JSoup 库的 AsyncTask 中运行我的 Android 活动?
问题描述
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 中显示连接。我也尝试过创建一个线程并在新线程中运行它,但它也不起作用。
这是我的活动
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);
}
}
解决方案
像这样更改您的活动代码,
我用 aTextView
来显示连接的状态。
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);
}
}
}
并记得在清单文件中添加 Internet 权限。
<uses-permission android:name="android.permission.INTERNET" />
推荐阅读
- graphics - 如何计算多倍频程柏林噪声的导数
- javascript - 从国家、州、城市和每个城市的纬度/经度的数据库查询构建 JSON
- java - 流过滤器内的Java反射
- oracle - Docker 上的 Oracle :: 警告:您不再连接到 ORACLE。SP2-0640:未连接
- flutter - Flutter - RadioListTile 有两个问题
- json - Laravel:在 post 请求中发送 JSON
- c++ - Boost Hana 实现自定义序列
- node.js - TestCafe 通过 Express 中的 POST 请求触发测试
- c# - 单击鼠标时如何跟随单位
- c# - ASP.NET 3.1 谷歌站点地图