2

我有地图:

public Map bitmaps = new ConcurrentHashMap();

一个用于解码资源的线程,通过以下方式填充位图:

bitmaps.put (resource, BitmapFactory.decodeStream (input, null, options));

第二个本机线程将解码的资源绑定到 opengl 纹理:

    公共无效 onDrawFrame (GL10 gl)
    {
        如果(位图大小()> 0)
        {

所以第一个线程解码和第二个线程绑定。这种模式在 android 2.3.3、2.3.4 和 4.xx 上运行良好。

但是对于 android 2.3.5 或 2.3.6 ,bitmaps.size() 中的第二个线程(必须与第一个线程的填充位图一起使用)总是返回 0,而第一个线程(填充位图)同时返回更多通过调用 bitmaps.size() 大于 0。

那么为什么在这个版本的 android os 中一个线程看不到其他线程填充的元素呢?

4

0 回答 0