Java 我们是否需要捕获AsyncTask的返回值?
我在下面写了一个异步任务Java 我们是否需要捕获AsyncTask的返回值?,java,android,android-studio,android-asynctask,downloading-website-files,Java,Android,Android Studio,Android Asynctask,Downloading Website Files,我在下面写了一个异步任务 public class DownloadTask extends AsyncTask<String, Void, String>{ @Override protected String doInBackground(String... urls) { String result = ""; HttpsURLConnection urlConnection = null;
public class DownloadTask extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... urls) {
String result = "";
HttpsURLConnection urlConnection = null;
try {
URL url = new URL(urls[0]);
urlConnection = (HttpsURLConnection)url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(inputStream);
int data = reader.read();
while (data != -1){
char currentData = (char)data;
result+=currentData;
data = reader.read();
}
Log.i("Downloaded data",result);
}catch (Exception e){
e.printStackTrace();
}
return result;
}
}
这段代码可以正常工作。但我的疑问是,我们不需要string类型的变量来捕获AsyncTask的返回值吗。这里不使用任何变量,只将其编写为
task.execute(“https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty");代码>。为什么这不会引起错误呢。谁能解释一下吗。我是Android新手。异步任务的返回值。执行(Params…Params)
是任务本身,如中所述,因此您可以保留它的引用。如果忽略返回值,则不会导致错误
异步任务
异步工作。这就是为什么稍后在AsyncTask
的onPostExecute(result-result)
方法中检索结果。此方法在UI线程上运行,因此您可以在那里更新视图等。@user:10819573您可以查看一下吗
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
titles = new ArrayList<String>();
arrayAdapter =new ArrayAdapter(MainActivity.this,android.R.layout.simple_list_item_1,titles);
listView.setAdapter(arrayAdapter);
//To get json data
DownloadTask task = new DownloadTask();
try {
task.execute("https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty");
}catch (Exception e){
e.printStackTrace();
}
}