6

PreferenceActivityを使用して構成アクティビティを作成しようとしています...

私はいくつかの実例を見つけました

「WiFi 高度な構成エディター」

「Wifi Config Editor Pro」

しかし、私が書いたコードは、回線上で 10 ~ 15 秒間待機しeditor.commit()ます。非常に単純なはずですが、わかりません。

これが簡単なコードです。

...

SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(v.getContext());
prefs.registerOnSharedPreferenceChangeListener(ClassConfig.this);

    SharedPreferences.Editor editor = prefs.edit();
editor.clear();

editor.putString("key1", value1);
editor.putString("key2", value2);
editor.putBoolean("key3", value3);
    ...
    //i got nearly 35 keys here
    ...
    editor.putString("key33", value33);
editor.putBoolean("key34", value34);
editor.putBoolean("key35", value35);

    editor.commit();

何か案は??

更新:もう1つ。ログ ファイルにこれらの警告が表示されました

W/BackupManagerService(1914) dataChanged が参加者なし pkg='com.android.providers.settings' uid=10046

4

4 に答える 4

2

大きな設定をコミットするのは遅いです-それは別のスレッドで行われるべきです。これを実装することを検討してくださいAsyncTask

于 2011-02-07T15:00:25.393 に答える
2

apply()非同期のメソッドを使用する必要があります。こちらのドキュメントをご覧ください

于 2015-02-01T23:24:46.563 に答える
0

どこでこれをしているのですか?OnSharedPreferenceChanged?

PreferenceActivity を使用している場合、ユーザーがウィジェットの状態を変更すると、XML で定義された PreferenceActivity のキーが変更されるため、手動で設定を記述する必要はありません。

于 2011-02-07T15:08:42.457 に答える