android - 在 Android 中检索 AsyncTask 方法内的值

标签 android android-asynctask

我正在实现使用 AsyncTask 方法检索后台进程的 JSON 数组,

我有一个数组变量,它在 OnCreate 之前声明并用某个值初始化,

String [] str=new String[100];

存储在 tat 数组变量中,同时在 for 循环中解析 json 数组,

str[i]=c.getString(TAG_NAME);

存储完美,我也做了Log并且它也显示在logcat中,

但问题是当我像这样在函数之外使用“str”数组变量时,

void func()
{
List<String> top250 = new ArrayList<String>();
for(int x=0;x<str.length;x++)
{

    top250.add(str[x]);

}
}

str 变量仅存储初始化内存的字符串“null”。

它存储“null”100次。

那么如何获取AsyncTask内部doInBackground方法处理的值呢?

最佳答案

您可以在执行后返回字符串列表()

private class LongOperation extends AsyncTask<String, Void, List<String>> {

    @Override
    protected List<String> doInBackground(String... params) {

        List<String> top250 = new ArrayList<String>();
        for(int x=0;x<str.length;x++)
        {

            top250.add(str[x]);

        }

        return top250;
    }

    @Override
    protected void onPostExecute(List<String> result) {

        //validate result and assign to something useful like a field

    }

    @Override
    protected void onPreExecute() {}

    @Override
    protected void onProgressUpdate(Void... values) {}
}

然后,您可以在验证结果后将结果分配给类中某处的字段。

关于android - 在 Android 中检索 AsyncTask 方法内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644390/

相关文章:

android - Activity 生命周期的奇怪行为 - 在 onResume() 之后也调用了 onPause() ...为什么?

java - 如何将列表或数组列表从 AsyncTask 类传递到另一个类

android - 从 url android 下载 docx 文件

android - Firebase - RecyclerView 多次只显示一张图片

android - 填充正弦图 Android

java - ListPreference标记导致我的应用崩溃

android - 如何在Adobe Flex移动设备( Spark )上使用ToggleSwitch使音频(声音)静音?

android - Activity 之间的异步任务共享

java - aSyncTask 死锁第二个 aSyncTask

java - AsyncTask 中 CookieSyncManager.createInstance 中的 NullPointerException