Это в значительной степени взято из одного из примеров Facebook sdks (оно позволяет вам сохранять сеанс FB, чтобы пользователю не приходилось каждый раз входить в систему) ... хотя я немного изменю его для вас
public class SessionStore {
private static final String PLAYER_NAME = "player_name";
private static final String LEVELS_COMPLETED = "levels_completed";
private static final String HIGH_SCORE = "high_score";
private static final String KEY = "player_session";
int highScore;
int levelsCompleted;
String pName;
public static boolean saveSession(Context context, String player_name, int levels_completed, int high_score) {
Editor editor =
context.getSharedPreferences(KEY + player_name, Context.MODE_PRIVATE).edit();
editor.putString(PLAYER_NAME,player_name);
editor.putInt(LEVELS_COMPLETED, levels_completed);
editor.putInt(HIGH_SCORE,high_score);
return editor.commit();
}
public static void restoreSession(Context context, String player_name) {
SharedPreferences savedSession =
context.getSharedPreferences(KEY + player_name, Context.MODE_PRIVATE);
highScore = savedSession.getInt(HIGH_SCORE,0);
levelsCompleted = savedSession.getInt(LEVELS_COMPLETED,0);
pName = savedSession.getString(PLAYER_NAME,"NO_NAME!");
}
public String getName()
{
return pName;
}
}
Я думаю, вы поняли основную идею ...
некоторые моменты: я использую «KEY + player_name» в случае, если разные игроки играют на одном телефоне (если бы он был статичным, вы бы перезаписали данные одного игрока данными другого).
Кроме того, если вы делаете pName = savedSession.getString(PLAYER_NAME,"NO_NAME!");
, если в общих настройках ничего не существует, по умолчанию используется значение "NO_NAME!" и аналогично для getInts (который в этом случае у меня по умолчанию их 0)
в программе вы могли бы сделать SessionStore.saveSession("Alex",50000,50000);
, чтобы сохранить сеанс и т. Д. Надеюсь, что это дает хорошее представление о том, как его использовать ... Также имейте в виду, я новичок Android - это прекрасно работает для меня, но Я не эксперт: D