SparseArray size()返回0

时间:2018-02-27 14:50:31

标签: android sparse-matrix

我在调用SparseArray方法时遇到size()问题,特别是如果我刚刚添加了一些元素,它也会返回0。这是我第一次遇到这种(显然是愚蠢的)问题。

我使用AsyncTask的doInBackground方法:

SparseArray<MyPojoClass> myArray = new SparseArray<>();

// some HttpURLConnection stuffs
// ...

while (/*...reading from the urlConnection's input stream ...*/) {
    MyPojoClass myObject = new MyPojoClass(something);
    myArray.put(atag, myObject);
}

// close the urlConnection
// ...

// THE PROBLEM!
if (myArray.size() == 0)
    return null;
return myArray;

这大约是doInBackground的重要部分。我注意到,如果我在尺寸检查上设置断点,它总是返回正确的尺寸,应用程序完美无缺;如果我让应用程序没有断点,它有时会在检查中失败。

我没有发现与SparseArray类相关的其他问题。在你问它之前,没有其他人(其他线程)写或读相同的SparseArray。创建和处理它的线程是次要线程,但这不应该是问题。

0 个答案:

没有答案