2014-02-24 60 views
0

我試圖從Android上的BroadcastReceiver處理圖像,但我的日誌顯示以下錯誤:調用OpenGL ES API而沒有當前上下文(每個線程記錄一次)。有任何想法嗎。這是我的代碼:從Android上的BroadcastReceiver處理圖像

public void processingImage(String image){ 

      try { 

      if(image != null){ 

       bmp = convertBitmap(image); 
       ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
       bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); 
       bitmaps.add(bmp); 

       byteArray = stream.toByteArray(); 
      } 


      } catch (Exception e) { 

      } 
    } 

private Bitmap convertBitmap(String image) throws MalformedURLException, IOException{ 


    Bitmap b = BitmapFactory.decodeStream((InputStream)new URL("http://mydomain.com/upload/" + image).getContent()); 
    return b; 
} 
+0

http://stackoverflow.com/questions/3383049/call-to-opengl-es-api-with-no-current-context –

回答

0

除了啓動服務和活動以外,您不應該在BroadcastReciever中執行任何操作。 BroadcastReceiver通過系統實例化,其上下文非常有限,可能缺乏加速的圖形支持。

android.graphics包中包含與平臺中的圖形硬件緊密相關的類,因此無法使用沒有實際openGL上下文的Android上下文對象來執行此包中指定的某些操作。

+0

好的,非常感謝 – josiland