我正在尝试存储用于在首选项页面字段中更新的密码。
我是使用ISecurePreferences完成的,但问题是实例关闭后节点不存在。
@Override
public boolean performOk() {
// TODO Auto-generated method stub
System.out.println("perform ok");
ISecurePreferences root = SecurePreferencesFactory.getDefault();
//System.out.println("Children names: "+root.);
ISecurePreferences node = root.node("password");
try {
System.out.println("Password to store: "+passwordField.getStringValue());
node.put("password",passwordField.getStringValue(),true);
System.out.println("stored");
} catch (StorageException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Storage failed");
}
return true;
}
在首选项初始化程序中:
@Override
public void initializeDefaultPreferences() {
// TODO Auto-generated method stub
System.out.println("Initializing preferences");
//IPreferenceStore prefStore = Activator.getDefault().getPreferenceStore();
ISecurePreferences root = SecurePreferencesFactory.getDefault();
if(root.nodeExists("password")){
ISecurePreferences node = root.node("password");
try {
System.out.println("password taken: "+node.get("password",""));
} catch (StorageException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
System.out.println("node doesn't exists");
}
}
在Eclipse的相同执行中,我可以存储和检索密码。
你能帮助我说明为了在实例之间保留信息我必须做些什么吗?
答案 0 :(得分:1)
我认为您必须调用flush()
的{{1}}方法来保存您设置的首选项。