Java Preferences Api не предоставляет обновленные данные, когда приложение не закрыто - PullRequest
0 голосов
/ 14 июля 2020
• 1000 Но мне нужно внести некоторые изменения на основе значений, обновленных, пока приложение все еще открыто.

Я прочитал некоторое решение о фиксации узла для обновления изменений, но не знаю, как его реализовать.

Ниже мой код:

public class ConfigurationServiceImpl implements ConfigurationService {
    private String pathName;
    private Preferences root;
    private Preferences node;
    
    protected void initialize() {
        this.node = root.node(pathName);
    }
    
    
    public void putBoolean(String key, boolean value) throws BackingStoreException {
        node.putBoolean(key, value);
        node.flush();
    }
    
    public boolean getBoolean(String key, boolean defaultValue) {
        return node.getBoolean(key, defaultValue);
    }
    
    

Ниже приведен код, который я использую для хранения и выборки значений:

    configurationService.putBoolean("key", false);

    boolean isBasic = configurationService.getBoolean("key", true);

Примечание. Я проверил свои локальные настройки, и обновленные значения доступны там при вызове «configurationService.putBoolean("key", false);».

Однако «configurationService.getBoolean("key", true);» дает мне старое значение.

Кто-нибудь может предложить, как мне зафиксировать его, чтобы я мог получить обновленное значение без закрытие приложения. Или любое обновление о том, как зафиксировать его на диске, будет полезно.

Пожалуйста, помогите. Заранее спасибо.

...