posted by 프띠버리 2013. 11. 13. 16:22

SharedPreferences는 안드로이드 애플리케이션에 지역 데이터를 저장하기 위한 가장 단순하고 빠른 효과적인 방법이다.

SharedPreferences는 애플리케이션을 통해 다양한 키/값 쌍을 저장하고 연관 짓게 해주는 필수 프레임워크이며, 모든

애플리케이션은 자신의 SharedPreferences 클래스와 관련돼 있기 때문에 저장 후 커밋(committed)된 데이터는 모든

사용자 세션을 넘어 유지된다. 하지만 SharedPreferences의 단숨함과 효율적인 특성으로 인해 기본 데이터 타입만 저장

가능하므로 SharedPreferences의 저장 대상에 대해 유념해야 한다.

(기본 데이터 타입 : boolean, float, long, int, string)

<예제>

package jwei.apps.dataforandroid.ch1;

 

import jwei.apps.dataforandroid.R;

import android.app.Activity;

import android.content.Context;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.os.Bundle;

import android.util.Log;

 

/**

 * Examples for initial case as defined in Chapter 1 of Data for Android.

 *

 * @author Jason Wei

 *

 */

public class SharedPreferencesExample extends Activity {

 

    private static final String MY_DB = "my_db";

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

 

        SharedPreferences sp = getSharedPreferences(MY_DB, Context.MODE_PRIVATE);

 

        Editor e = sp.edit();

        e.putString("testStringKey", "Hello World");

        e.putBoolean("testBooleanKey", true);

        e.commit();

 

        String stringValue = sp.getString("testStringKey", "error");

        boolean booleanValue = sp.getBoolean("testBooleanKey", false);

 

        Log.i("SharedPreferencesExample", "Retrieved string value: " + stringValue);

        Log.i("SharedPreferencesExample", "Retrieved boolean value: " + booleanValue);

    }

}

-----------------------------------------------------------------------------------------------------------------------------------

 

getSharedPreferences(String mapName, int mapMode)

MODE 설명 

MODE_WORLD_READABLE : 다른 애플리케이션에서 접근 가능하게 맵의 가시성을 설정한다. 내용은 읽기 전용이다.

MODE_WORLD_WRITABLE : 다른 애플리케이션에서 접근 가능하게 맵의 가시성을 설정한다. 읽기와 쓰기 모두 가능.

MODE_MULTI_PROCESS : API 레벨 11 이후로 사용 가능한 모드. 다중 프로세스에 의해 맵을 수정할 수 있게 허용함.

                                      동일한 SharedPreferences 인스턴스에 쓰기 작업이 일어날 수 있다.