【发布时间】:2021-10-01 12:31:19
【问题描述】:
我正在尝试使用AsyncTask 在 Android Studio 中发出 HTTP GET 请求。这个AsyncTask 类用于应用程序的许多活动。我想为AsyncTask 分配一个void 函数,它将在doInBackground 获取HTTP GET 请求后执行。 HTTP 返回的响应应该插入到void 的参数中。我研究了很多次,但找不到一个简单的工作解决方案。需要帮忙。谢谢。
Main.java 包含 AsyncTask 类:
package com.example.NAME;
import android.os.AsyncTask;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static class GetData extends AsyncTask<String, Void, Boolean> {
protected void onPreExecute() {
super.onPreExecute();
}
protected String doInBackground(String... params) {
Boolean _return = false;
try {
String data = params[0];
// DO THE HTTP GET REQUEST AND EVALUATE THE BOOLEAN RETURN VALUE
_return = ???;
} catch (Exception e) {
e.printStackTrace();
}
return _return;
}
@Override
protected void onPostExecute(Boolean _return) {
super.onPostExecute(_return);
}
}
}
Activity1.java 使用 AsyncTask 类:
package com.example.NAME;
import android.app.Activity;
import android.os.Bundle;
public class Activity1 extends Activity {
private final Main main = new Main();
@Override
protected synchronized void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity1);
}
public synchronized void GET_Request(View v) {
Main.GetData t = new Main.GetData();
t.execute("STRING");
/*
How to attach the `after_GET_Request` void that should be executed
after the HTTP GET Request happens and should receive the returned
Boolean value.
*/
}
public synchronized void after_GET_Request(Boolean b) {
// Use the Boolean data received from AsyncTask.
}
}
【问题讨论】:
-
我认为
AsyncTask已被弃用 -
有没有替代方法???
-
线程,后台工作者
标签: java android android-asynctask