2012-01-02 5 views
6

私がcontext.MODE_PRIVATEまたはMODE_READABLE, WRITABLEについて理解したことは、これらの関数が、共有償却のためのファイルを作るということです。なぜContext.MODE_PRIVATEまたはContext.MODE_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(); 
} 

答えて

7

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は、値0の定数intです。詳細については上記のjavadocを参照してください。前者は読みやすくなり、コードスタイルの観点から好ましいものになります。

+1

です...それらの間に機能的な違いはありませんか? thx –

+4

@SehoLee - * "そう...彼らの間に機能的な違いはないの?" –