致命异常:Thread-762 java.lang.OutOfMemoryError

时间:2016-07-29 20:31:24

标签: java android performance bitmap

我有一个问题,我有4个活动:A - B - C - D.

我的应用程序从A开始,然后转到B,C,最后是D,DI可以选择返回A或B,如果他去了B,我可以回到C,问题是有时当我来到ab(没有问题)但是当我从B到C(当它完成循环时)它给出了这个错误

FATAL EXCEPTION: Thread-762 java.lang.OutOfMemoryError 
    at android.graphics.Bitmap.nativeCreate (Native Method)
    at android.graphics.Bitmap.createBitmap (Bitmap.java:640)
    at android.graphics.Bitmap.createBitmap (Bitmap.java : 620) 
    at usuario.app.redavsalpha.MainActivity $ 2.run (MainActivity.java:555) 
    at java.lang.Thread.run (Thread.java:856)

我一直在寻找并无法解决这个问题,有没有人知道可能是什么?

以下是包含活动C的位图的代码:

thread = new Thread() 
{
    @Override
    public void run() 
    {
        try
        {
            tempBitmap = BitmapFactory.decodeStream((InputStream) new URL(strURL).getContent());
            if(tempBitmap.getConfig()!=null)
            {
               config = tempBitmap.getConfig();
            }
            else
            {
            config = Bitmap.Config.ARGB_8888;
            }
            bitmapMaster = Bitmap.createBitmap(tempBitmap.getWidth(), tempBitmap.getHeight(), config);
            canvasMaster = new Canvas(bitmapMaster);
            canvasMaster.drawBitmap(tempBitmap, 0, 0, null);
            //para a aplicação a partir daqui debaixo
            bitmapDrawingPane = Bitmap.createBitmap(tempBitmap.getWidth(), tempBitmap.getHeight(), config);
            canvasDrawingPane = new Canvas(bitmapDrawingPane);
        }
        catch (Exception e)
        {
            e.printStackTrace();

        }
    }
}.start();

0 个答案:

没有答案