在AsyncTask上调用execute()不会调用doInBackground()

时间:2012-10-23 21:58:23

标签: android android-asynctask

我在主Activity中有这个代码,其中fetchxml是AsyncTask:

String GroupID = PreferenceManager.getDefaultSharedPreferences(MainActivity.this).getString("GroupID","");
fetchxml.execute(GroupID);

doInBackground(String... paras)中,它是:

protected String doInBackground(String...  paras) {
    Log.d("URL+ paras[0]", paras[0]);
    String xml = parser.getXmlFromUrl(URL+ paras[0]);
    return xml;
}

为什么我在paras[0]中没有得到任何价值?

2 个答案:

答案 0 :(得分:2)

当值为null或为空String时,Log.d也不会显示标记。确保sharedPreferences返回一个值。似乎键'GroupID'不存在,sharedPreferences返回默认值,这是一个空字符串“”

答案 1 :(得分:1)

确认您将类AsyncTask定义为:

private class Fetchxml extends AsyncTask<String, Integer, String>{ ...

此处的重要部分是确保上面的第一个参数类型为String,以与doInBackground中预期的值保持一致。

同时确认String GroupID不为空。