content :/ / ... などの URI で Google Play ゲーム サービスからアバターをダウンロードしようとしていますが、理由は不明ですが、クラスは同じアバターの読み込みを停止し、OnImageLoadedListener への応答を停止します。各画像は、マネージャーの個別のインスタンスです。
すべてのアバターは有効です (テストでは、それぞれが少なくとも 1 回ロードされます) 例外はキャッチされず、作成マネージャーのコンテキストは有効であり、現在のアクティビティから 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。