为什么这段代码不起作用?它不会因某种原因覆盖该文件

时间:2012-04-27 01:13:19

标签: blackberry sd-card overwrite

我正在使用以下代码将图像写入sdcard,然后显示为壁纸,但它只能工作一次,也就是说,它不会为任何其他图片更改它所以我猜它是不是要覆盖文件,为什么?

D.kF [] 是一个Bitmap数组 D.bgNumber 是一个int

Graphics graphics = Graphics.create(D.kF[D.bgNumber]);  

JPEGEncodedImage encoder = JPEGEncodedImage.encode(D.kF[D.bgNumber], 100);  
try {  
    ExtendedFileConnection fconn = (ExtendedFileConnection) Connector  
    .open("file:///store/home/user/pictures/image.jpg",  
            Connector.READ_WRITE);  
    fconn.enableDRMForwardLock();  
    if (!fconn.exists()) {  
        fconn.create();  
    }  
    OutputStream os = fconn.openOutputStream();  
    os.write(encoder.getData());  
    os.close();  
    fconn.close();  
} catch (Exception e) {  
    System.out.println("Output file error: " + e.getMessage());  
}  

HomeScreen.setBackgroundImage("file:///store/home/user/pictures/image.jpg");

1 个答案:

答案 0 :(得分:3)

我认为存在缓存问题。您的图片文件已更改,但壁纸未更改,因为它使用缓存的旧图片。

要在代码中删除旧图像文件,请使用此新文件生成具有新的不同名称的新图像文件并设置背景。