2011-12-10 3 views
1

가능한 중복 : 나는 내 안드로이드 위젯에서 비트 맵을 업데이트하려고하면
failed binder transaction on widget update실패 바인더 거래

내가는 문제가 있습니다. 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)); 
내가 여기에 잘못된 일을 할 것 같다 무엇인지 잘 모릅니다

를 업데이트를 부르고 곳이다 연구 2 일 후에 IPC 메모리 한도에 도달했습니다. 왜 그렇게하고 이것을 피하는가?

답변

2

예, 바인더 호출을 통해 전달 된 비트 맵의 ​​크기 제한을 초과합니다. 최신 버전의 Android는이를위한 새로운 메커니즘을 사용하며 한계가 더 높습니다.

작은 비트 맵을 사용하면 오류를 피할 수 있습니다. :)

+1

작은 비트 맵을 만들면 오류가 지연되므로이를 피하지 마십시오. –