我想制作可以自行重启黑莓的Blackberry应用程序(完成一些任务后)
例如,我使用虚拟
制作这个小应用程序dummy:(在它成为dummy.cod之后,我将其移动到res文件夹并将其重命名为dummy,而不再使用.cod)
public class Dummy extends Application{
public static void main( String[] args ) {
new Dummy().enterEventDispatcher();
}
public Dummy(){
}
}
应用示例代码: (我的应用程序的描述:只有一个按钮来调用重置方法)
public void reset() throws Exception {
// load the dummy cod file
byte[] cod = IOUtilities.streamToBytes(getClass().getResourceAsStream("/dummy"));
// create new module
int newHandle = CodeModuleManager.createNewModule(cod.length, cod, cod.length);
// install the module
if (newHandle != 0) {
int savecode = CodeModuleManager.saveNewModule(newHandle, true);
if (savecode == CodeModuleManager.CMM_OK_MODULE_OVERWRITTEN)
Logger.debug("The operation completed successfully; a module was overwritten and marked for deletion in the process.");
// now run the dummy application in background
ApplicationDescriptor appDesc = CodeModuleManager.getApplicationDescriptors(newHandle)[0];
ApplicationManager.getApplicationManager().runApplication(appDesc, false);
CodeModuleManager.deleteModuleEx(newHandle, true);
}
// restart the blackberry if required
CodeModuleManager.promptForResetIfRequired();
}
当我将代码运行到Simulator(SimPackage 6.0.0.587 - 9780& SimPackage 5.0.0.977 - 9300)时,代码运行良好,它显示“立即重启/稍后重启”的消息。
但是当我将代码加载到真实设备9780 OS 6.0.0.570和设备9300 OS 5.0.0.846时,代码仍然无效。
知道为什么会这样吗?或者我只是犯了一个简单而致命的错误?
谢谢:)
答案 0 :(得分:0)
您的代码是正确的,但您需要签署您的代码才能在真实设备上执行 CodeModuleManager.deleteModuleEx 。
有关详细信息,请参阅CodeModuleManager documentation。