java - 使用 onPostExecute 设置全局数组值时出现问题

标签 java android android-asynctask

我正在尝试设置全局定义的 String[] placesSuggestion;使用onPostExecute AsyncTask<String, String, String[]>

onPostExecute方法如下:

@Override
    protected void onPostExecute(String[] suggestionArray){
        //Log.d("suggestionArray", Arrays.toString(suggestionArray));
        super.onPostExecute(suggestionArray);
        fillPlacesSuggestion(suggestionArray);
        Log.d("suggestionArray", Arrays.toString(suggestionArray));
    }

fillPlacesSuggestion函数如下所示:

public void fillPlacesSuggestion(String[] suggestionArray){
    placesSuggestion = suggestionArray;
}

onCreate方法如下:

 super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    sourceET = (EditText) findViewById(R.id.sourceEditText);
    destinationET = (EditText) findViewById(R.id.destinationEditText);
    new MyAsyncTask().execute();
    Log.d("placesSuggestion", Arrays.toString(placesSuggestion));

suggestionArray log 给出了预期值,但是 placeSuggestion日志不是。

谁能帮我解决这个问题,因为我对 Android 开发非常陌生。

最佳答案

当您尝试记录此内容时:

Log.d("placesSuggestion", Arrays.toString(placesSuggestion));

任务尚未完成。如果您想获得正确的地方建议值,请等待

MyAsyncTask task = new MyAsyncTask();
task.execute();
if (task.get() != null) // waiting for it
{
    Log.d("placesSuggestion", Arrays.toString(placesSuggestion));
}

关于java - 使用 onPostExecute 设置全局数组值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26308665/

相关文章:

java - 如何在Java中随机选择按钮文本?

android - 如何获取 map 上一定半径内的点

Android Asynctask 调用服务器 API

android - 在 AsyncTask 中使用 runOnUiThread 是否效率低且不好?

JavaFX VGrow TabPane 内容更改

java - AnnotatedTypes 是否有类似 TypeToken 的东西

java - 通过输入流将字节流上传到 Google Drive

android - Activity 无法开始

android - 在 Android 应用程序中显示日历

android - 类扩展 AsyncTask 将不会启动