Multithreading 从blackberry中的后台线程在UI上显示图像

Multithreading 从blackberry中的后台线程在UI上显示图像,multithreading,image,blackberry,user-interface,background,Multithreading,Image,Blackberry,User Interface,Background,我正在寻找一种从后台线程在UI上显示图像的方法。此后台线程接收字节数组形式的流图像。我需要在我的UI上显示它 有人能帮忙吗 我已经尝试从后台线程访问位图字段,但什么也没有发生 谢谢 bmp = Bitmap.createBitmapFromBytes(jpegBytes, 0, jpegBytes.length, 1); final Bitmap bit = bmp; final byte [] jp = jpegBytes;

我正在寻找一种从后台线程在UI上显示图像的方法。此后台线程接收字节数组形式的流图像。我需要在我的UI上显示它 有人能帮忙吗

我已经尝试从后台线程访问位图字段,但什么也没有发生

谢谢

        bmp = Bitmap.createBitmapFromBytes(jpegBytes, 0, jpegBytes.length, 1);


        final Bitmap bit = bmp;
        final byte [] jp = jpegBytes;
        UiApplication.getUiApplication().invokeLater(new Runnable() {
            public void run() 
            {                   
                camView.jpegBytes = jp;
                System.out.println(bit);
                camView.bmpStream.setBitmap(bit);
                //camView.bmpStream.
            }
        });

如果需要更改主屏幕,意味着如果需要从后台线程向主屏幕添加字段,则需要调用

invalidate();
方法重新绘制屏幕,否则屏幕中不会发生任何更改

例:


嘿,伙计们,我设法找到了我对父类引用使用的问题。如果您有对主类的引用,我在问题中发布的上述代码将非常有效。

您能发布您尝试过的代码吗?它是否像一些屏幕。invlaidate?是的,嗨,Richard,我尝试过,但对我不起作用……真的可以从后台线程替换您的UI组件吗?我在我的代码中做了一些日志,它似乎在替换部分中运行,但是UI没有得到更新!有什么帮助吗?是的,UiApplication.getUiApplication()获取当前活动UI应用程序上下文的UiApplication对象。通常,这是从后台显示时所需的。如果您感兴趣,我已经在我的博客上解释了其中的一些内容:
 UiApplication.getUiApplication().invokeLater(new Runnable() {
            public void run() 
            {                   
                camView.jpegBytes = jp;
                System.out.println(bit);
                camView.bmpStream.setBitmap(bit);
                 invalidate();
                //camView.bmpStream.
            }
    });