2014-02-24 38 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