为什么要使用Context.MODE_PRIVATE或Context.MODE_WRITABLE?

Seh*_*Lee 7 java android facebook

我所理解的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();
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*n C 8

没有Context.MODE_WRITABLEContext.MODE_READABLE根据javadoc.所以我假设你在谈论Context.MODE_WORLD_WRITABLEContext.MODE_WORLD_READABLE.(并不是说这实际上与你的问题有关......)


我想知道它们之间有什么区别

    context.getSharedPreferences(KEY, Context.MODE_PRIVATE)
Run Code Online (Sandbox Code Playgroud)

    context.getSharedPreferences(KEY, 0);
Run Code Online (Sandbox Code Playgroud)

没有功能差异. Context.MODE_PRIVATE是一个int零值的常数; 有关详细信息,请参阅上面链接的javadoc.前者更具可读性,从代码风格的角度来看,这更为可取.

  • @SehoLee - *"所以...他们之间没有功能差异?"*这就是我刚才所说的...... (4认同)
  • 所以...他们之间没有功能差异?谢谢 (2认同)