Android ImageManager Google游戏服务

时间:2013-07-29 15:11:15

标签: android google-play-games

我们正试图通过android-class ImageManager在内容:/ ...等URI上下载Google Play游戏服务的头像,但由于未知原因,该类停止加载相同的头像,只是停止响应OnImageLoadedListener 。每张图片都是经理的独立实例。

所有头像都有效(对于测试,每个至少一次加载)没有异常捕获,创建管理器中的上下文有效,尝试了所有内容,从当前Activity到getApplicationContext()。

试图以异步和同步的方式进行加载。

值得注意的是:在最后一个加载器的操作总是在日志中与垃圾收集器对齐,然后不继续加载(应用程序继续其工作),尽管存储了对对象的所有引用。

通常会加载最后一个头像。

有没有人遇到过类似的问题?出现在2.3到4.2的版本

备用启动中的代码:

static ImageManager imageManager = null;
static int id = 0;
static Uri uri = null;

...

// ...
// change id & uri
// ...

imageManager = ImageManager.create(context);

Log.v("app", "LoadImageFromGoogle Manager created for Image #" + id);

imageManager.loadImage(new OnImageLoadedListener() {
    @Override
    public void onImageLoaded(Uri arg0, Drawable arg1) {
        try {
            Log.v("app", "LoadImageFromGoogle Image loaded #" + id);

            Bitmap bm = ((BitmapDrawable)arg1).getBitmap();
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            bm.compress(Bitmap.CompressFormat.PNG, 100, stream);
            byte[] byteArray = stream.toByteArray();

            // ... some code

            Log.v("app", "LoadImageFromGoogle Image added #" + id);
        } catch (Exception e) {
            Log.v("app", "LoadImageFromGoogle after loading Exception = " + e.toString());
        }
    }
}, uri, android.R.drawable.btn_star);

日志中的最后一行总是如此:

Log.v("app", "LoadImageFromGoogle Manager created for Image #" + id);

以及以下消息GC。

2 个答案:

答案 0 :(得分:1)

嗯......我从未见过这个问题。您确定要为它提供有效的URI吗?我的第一个猜测是,在您上次调用imageManager.loadImage()时,您在代码中某处传递无效URI可能是一个错误的错误。我尝试使上面的代码打印它试图加载的URI以及图像编号,以查看是否出现了奇怪的内容。

如果没有,您可以制作一个简单的repro案例并将其发布到我们的公共bug跟踪器吗? http://code.google.com/p/play-games-platform

谢谢!

答案 1 :(得分:0)

我遇到了同样的问题。它看起来像垃圾收集器可以"清洁"侦听器在它可以检索图像之前。解决问题的方法是直接在您的活动上实现ImageManager.OnImageLoadedListener,而不是在此刻创建新对象。

您可以在此处找到关于Google代码的相关问题: https://code.google.com/p/play-games-platform/issues/detail?id=14&can=1&sort=-status&colspec=ID%20Type%20Status%20Priority%20Platform%20Summary%20Stars

永远不会迟到;)