0

ファイルのプロパティを読み取り、それに応じてリストボックスのチェックボックスとリスト値を有効/無効にすると、GUI がちらつきます。コードを読んでいるこのファイルを削除すると、GUI がちらつきません。

OnCreate() で設定を作成する前に、プロパティを読んでいます。参照用にファイル書き込みコードを以下に添付します。設定ステータスを読み取って更新する他の方法がある場合はお知らせください。

private void SetExtendConf(String key, String strValue)
{
    mProperties = new Properties();
    try {
        File file = new File(FILE_EXT);
        if(!file.exists())
            file.createNewFile();
        file.setWritable(true,false);

        FileInputStream fis = new FileInputStream(file);
           mProperties.load(fis);
        fis.close();
        FileOutputStream stream = new FileOutputStream(file);

        Log.d(TAG, "Setting Values " + key  + ":"+ strValue);
        mProperties.setProperty(key, strValue);
        mProperties.store(stream,"ext.conf");
        stream.close();
    } catch (IOException e) {
        Log.d(TAG, "Could not open properties file: " + GPS_FILE_EXT);
    }
}

-マノジ

4

1 に答える 1

0

新しい Properties オブジェクトをインスタンス化し、プロパティの操作ごとに props ファイルを再読み取りおよび再書き込みするのはなぜですか? そうする実際の理由がない場合は、それらを一度読んで、必要に応じて (onPause/onResume を処理して) 書き込み、スレッドで実行します。つまり、次のようにします。

    最終ハンドラ handler = new Handler();

    [...]

        Runnable writeProps = new Runnable() {
            @オーバーライド
            public void run() {
                // ここで作業を行います
                [...]
                // 何かを UI スレッドに通知する場合は、これを実行します
                // handler.post(new Runnable() {public void run() { notifyUI(); }});
            }
        };
        スレッド thread = new Thread(writeProps, "writeProps");
        スレッド.開始();

    [...]
于 2011-01-17T02:48:05.280 に答える