티스토리 뷰



AppWidget에서 각각의 Widget의 설정값을 저장하고 보기 위한
SharedPreferences 추가하고 지우기
 
 
public static final String PREFS_NAME = "MyPrefs";
public static final String PREFS_Prefix = "AppWidgetPrefs_";
 
값 추가하기
SharedPreferences.Editor prefs = context.getSharedPreferences(PREFS_NAME, MODE_PRIVATE).edit();
prefs.putInt(PREFS_Prefix + appWidgetId, nData);
prefs.commit();
 
 
값 확인하기
SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
nData = prefs.getInt(PREFS_Prefix + appWidgetId);
 
 
값 지우기
SharedPreferences.Editor prefs = context.getSharedPreferences(PREFS_NAME, MODE_PRIVATE).edit();
prefs.remove(PREFS_Prefix + appWidgetId);
prefs.commit();


AppWidget Configure Activity에서 값을 저장하고,
public static void savePrefs(Context context, int appWidgetId, int nData)
{
    SharedPreferences.Editor prefs =
        context.getSharedPreferences(PREFS_NAME, MODE_PRIVATE).edit();
    prefs.putInt(PREFS_Prefix + appWidgetId, nData);
    prefs.commit();
}
 
public static void removePrefs(Context context, int appWidgetId)
{
    SharedPreferences.Editor prefs =
        context.getSharedPreferences(PREFS_NAME, MODE_PRIVATE).edit();
    prefs.remove(PREFS_Prefix + appWidgetId);
    prefs.commit();
}
 
AppWidget Provider Activity에서 해당 Widget이 지워지면 저장된 값 지우기,
public void onDeleted(Context context, int[] appWidgetIds) {
    for(int i=0; i<appWidgetIds.length; i++) {
        MyConfigure.removePrefs(context, appWidgetIds[i]);
    }
    super.onDeleted(context, appWidgetIds);
}


//SharedPreferences는 안드로이드에 의해서 물리적으로 저장된다.

 
[출처] http://developlife.tistory.com/
[원본] http://developlife.tistory.com/10
[작성자] 미녀비
댓글