SharedPreferences имеет область приложения. Поэтому, даже если вы сохраните их в активности, вы можете называть их во всех других действиях вашего приложения.
В каждом упражнении вы можете назвать это для сохранения некоторых префов:
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
editor.putString("Key", "Value");
editor.putInt("Key2", Value(int));
editor.apply();
и всегда от всех видов деятельности, вы можете получить их по телефону:
SharedPreferences prefs = getPreferences(MODE_PRIVATE);
String restoredText = prefs.getString("Key", null);
if (restoredText != null)
{
int Key2= prefs.getInt("Key2", -1);
/*if (selectionStart != -1)
{
//do Something
}*/
}
here вы можете найти хорошую руководство для этого, которое объясняет почти все, что вам нужно знать :)
EDIT: ok, это изображение может помочь вам понять жизнь Android цикл:
Поскольку вы хотите вернуться из активности B в активности А вы можете избежать вызова метода finish()
; Вы можете сделать следующее:
активность A:
Intent i = new Intent(A.this, B.class);
startActivity(i);
Теперь, деятельность будет первым в backstack в приложении ниже B активности.
активность B:
//Do your stuffs
finish();
Сейчас активность B будет закрыт и А снова показал.
Если вы хотите finsh на A активность в любом случае, в B активности, а finish();
вы используете Намерение снова:
Intent i = new Intent(B.this, A.class);
startActivity(i);
finish();
если вы должны пройти ДАННЫЕ назад к деятельности A, в вызове деятельности по B с использованием startActivityForResult();
. here - это документ об этом.
Но если в операции B вам нужно только получить sharedPref и использовать их в A-операции, я предлагаю вам восстановить их непосредственно из A-активности, так как они имеют область приложения.
EDIT2:
Вы можете получить доступ к SharedPrefs в OnCreate(), но только если OnCreate метод вызывается после зр сохраняются.
я предлагаю вам использовать последний метод: вызов B активности с
Intent i = new Intent(A.this, B.class);
startActivity(i);
finish();
и чем вызов с
Intent i = new Intent(B.this, A.class);
startActivity(i);
finish();
вы будете иметь sharedPrefs в OnCreate.
Для любого вопроса, я все еще здесь :)
PS: не забудьте проверить всегда если sharedPrefs существует, используя if (sharedPref.contains("Key")){//dosomething}
PPS: sharedPrefs обычно используются только для настройки, если вам нужно чтобы сохранить больше значений, попробуйте взглянуть на sugarORM, чрезвычайно удобную базу данных для ваших приложений.
где ваш тролль активности C? – alex