2014-10-07 2 views
1

Мне нужно установить некоторые значения для связанных с ними постоянно сохраненных данных, если они существуют, при инициализации. Если нет, мне нужно их инициализировать. Есть ли недостаток в использовании SharedPreference для инициализации переменной при первом запуске. То есть, что-то вроде этого:Android с использованием переменной в первый раз

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    SharedPreferences sp = getSharedPreferences("MyDataName", Context.MODE_PRIVATE); 
    String name = sp.getString("name", ""); 
    boolean isFirstRunning = sp.getBoolean("firstTime", true); 

    if (isFirstRunning) { 
     Toast.makeText(this, "YEA", Toast.LENGTH_LONG).show(); 

     SharedPreferences.Editor editor = sp.edit(); 
     editor.putBoolean("firstTime", false); 
     editor.commit(); 
    } 

} 

Если нет недостатков от уровня обработки, существует стандартная практика, насколько эта ситуация касается? Кроме того, есть ли альтернативный способ обработки постоянных данных или нам нужно использовать SharedPreferences для этого?

+0

уверен, что это легко и быстро кодирование ... – Opiatefuchs

+1

Не знаю, почему у вас есть голосующий голос за этот вопрос. Является ли это хорошей идеей, действительно зависит от вашего прецедента. Если вам действительно нужно знать, если ваш код когда-либо достиг этой конкретной функции onCreate() (или создал это действие), я не понимаю, почему ваше решение является «плохим» per se. – kha

+0

Это ни хорошо, ни плохо. –

ответ

1

Да, это вполне приемлемо. Для аккуратности лучше определить ключи, а значения по умолчанию - как константы, но подход, который у вас есть, будет работать нормально.

0

Это основано на ваших требованиях. если вам нужны значения sharedpreference быстро, что вы написали. другой разумно не использовать.

+0

есть ли другой способ сделать это? –