我在尝试更新Android小部件中的位图时出现问题。 JAVA FAILED BINDER TRANSACTION错误在我的logcat中循环,在10到12次位图更新后,我的小部件在此之后停止更新。我正在做的就是在我的小部件中显示当前秒数。 这就是我创建位图的方法
public static Bitmap buildUpdate(String time,Context ctx)
{
Bitmap myBitmap=null;
myBitmap = Bitmap.createBitmap(160, 84, Bitmap.Config.ARGB_4444);
Canvas myCanvas = new Canvas(myBitmap);
Paint paint = new Paint();
Typeface clock = Typeface.createFromAsset(ctx.getAssets(),"AladinRegular.ttf");
paint.setAntiAlias(true);
paint.setSubpixelText(true);
paint.setTypeface(clock);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
paint.setTextSize(65);
paint.setTextAlign(Align.CENTER);
myCanvas.drawText(time, 80, 60, paint);
return myBitmap;
}
这就是我要求它更新我的imageview
的地方 remoteViews.setImageViewBitmap(R.id.label_fg, Drawing.buildUpdate(seconds+" ",ctxt));
我不知道我在这里做错了什么,经过两天的研究后我得到的是我的IPC内存限制。为什么这样以及如何避免这种情况?
答案 0 :(得分:2)
是的,您正在达到通过活页夹调用传递的位图的大小限制。更新版本的Android使用更新的机制,限制更高。
您可以使用较小的位图来避免错误。 :)