我对context.MODE_PRIVATE
或MODE_READABLE, WRITABLE
的理解是,这些函数会为共享偏好创建文件。
我想知道context.getSharedPreferences(KEY, Context.MODE_PRIVATE)
和getSharedPreferences(KEY, 0);
之间有什么区别。
getSharedPreferences
从xml文件夹中检索其首选项。 Context.MODE_PRIVATE
存储其文件。如果context.getSharedPreferences(KEY, Context.MODE_PRIVATE)
和getSharedPreferences(KEY, 0)
同时生成文件,为什么要使用context.getSharedPreferences(KEY, Context.MODE_PRIVATE)
。
以下是Facebook API的一部分,我注意到Context.MODE_PRIVATE
。
public static boolean save(Facebook session, Context context) {
Editor editor =
context.getSharedPreferences(KEY, Context.MODE_PRIVATE).edit();
editor.putString(TOKEN, session.getAccessToken());
editor.putLong(EXPIRES, session.getAccessExpires());
return editor.commit();
}
public static boolean restore(Facebook session, Context context) {
SharedPreferences savedSession =
context.getSharedPreferences(KEY, Context.MODE_PRIVATE);
session.setAccessToken(savedSession.getString(TOKEN, null));
session.setAccessExpires(savedSession.getLong(EXPIRES, 0));
return session.isSessionValid();
}
答案 0 :(得分:8)
根据javadoc,没有Context.MODE_WRITABLE
或Context.MODE_READABLE
。所以我假设你在谈论Context.MODE_WORLD_WRITABLE
或Context.MODE_WORLD_READABLE
。 (并不是说这实际上与你的问题相关......)
我想知道
之间有什么区别context.getSharedPreferences(KEY, Context.MODE_PRIVATE)
和
context.getSharedPreferences(KEY, 0);
没有功能差异。 Context.MODE_PRIVATE
是int
常量,值为零;有关详细信息,请参阅上面链接的javadoc。前者更具可读性,从代码风格的角度来看,这更为可取。