android小部件中的绑定器事务失败[重复]

Posted

技术标签:

【中文标题】android小部件中的绑定器事务失败[重复]【英文标题】:Failed binder transaction in android widget [duplicate] 【发布时间】:2011-12-10 21:19:06 【问题描述】:

可能重复:failed binder transaction on widget update

当我尝试在我的 android 小部件中更新位图时遇到问题。 JAVA FAILED BINDER TRANSACTION 错误在位图更新 10 到 12 次后开始在我的 logcat 中循环,之后我的小部件停止更新。我现在所做的只是在我的小部件中显示当前秒数。 这就是我创建位图的方式

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;
    

这就是我调用它来更新我的图像视图的地方

   remoteViews.setImageViewBitmap(R.id.label_fg, Drawing.buildUpdate(seconds+" ",ctxt));

我不知道我在这里做错了什么,经过两天的研究,我得到的只是我达到了 IPC 内存限制。为什么会这样以及如何避免这种情况?

【问题讨论】:

【参考方案1】:

是的,您达到了通过活页夹调用传递的位图的大小限制。更新的 Android 版本为此使用了更新的机制,并且限制更高。

您可以通过使用较小的位图来避免错误。 :)

【讨论】:

但是制作较小的位图只会延迟错误,它并不能避免这种情况:/

以上是关于android小部件中的绑定器事务失败[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android中的Binder事务失败[重复]

为什么我的线程组列表中有这么多的绑定器和asynctasks?他们是如何管理的?

在 kivy 小部件中访问父对象的大小参数

javabinder,失败的 BINDER 事务 - setImageViewBitmap(..) [重复]

将位图动态放入小部件时失败的活页夹事务

Android主屏幕小部件中的RecyclerView [重复]