0

Editor is に行が表示されます。エディターで行ったすべての変更はバッチ処理され、commit()またはapply()を呼び出すまで元のSharedPreferencesにコピーされません。

commit()およびapply()として指定された場合に呼び出すのに最適な関数はどれですか?

4

3 に答える 3

4

apply()共有設定のメモリ内キャッシュをすぐに更新してから、バックグラウンドスレッドでファイルシステムに変更を書き込みます。

commit()変更を同期的に書き込みますUIスレッドから呼び出し元のスレッドから。これはUIスレッドである可能性があります。UIスレッドからファイルシステムアクセスを実行することは、問題をブロックするリスクがあるため、一般的にはお勧めできません。

于 2012-04-18T06:58:31.427 に答える
1

マルチスレッドで複数のスレッドによって書き込まれる場合commit()は、同期されているため、またはapply()非同期であるため、書き込みに失敗した場合に通知されることはありません。詳細については、こちらを参照してください。

于 2012-04-18T06:56:18.560 に答える
0

Commit()はブール値を返し、成功したかどうかを示しますが、apply()は成功しません。

于 2012-04-18T06:57:34.723 に答える