gpt4 book ai didi

java - 仅在 AsyncTask 中完成 doInBackground 后才执行某些操作

转载 作者:太空宇宙 更新时间:2023-11-04 14:41:55 25 4
gpt4 key购买 nike

在我的 AsyncTask 中,我在 doInBackground() 中执行了相当长的操作,它在完成 doInBackground() 后为变量赋值>。我使用该变量的值在 postExecute() 中设置用户界面的一部分。问题是 doinbackground() 是一个相当长的操作,而 postExecute() 首先完成。这样我就无法获取该值。

这就是问题所在

private class bigwork extends AsyncTask<String, Void, Boolean> {
String foo = null;

@Override
protected void onPreExecute() {
}

@Override
protected Boolean doInBackground(final String... args) {
// Long operation sets variable 'foo' a new value
}

@Override
protected void onPostExecute(final Boolean success) {
// Make use of foo here
}

问题是我在 postExecute() 中得到的 foo 值仍然是 null

最佳答案

通常您会将字符串直接传递给 onPostExecute:

private class bigwork extends AsyncTask<String, Void, String>
{

@Override
protected void onPreExecute() {
}

@Override
protected Boolean doInBackground(final String... args) {
// Long operation
set variable 'foo' a new value
return foo;
}

@Override
protected void onPostExecute(String foo) {
if (foo != null) {
// success
}
// Make use of foo here
}

关于java - 仅在 AsyncTask 中完成 doInBackground 后才执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24848811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com