У меня должно быть две операции в приложении для Android, которое может быть переключено друг между другом с персистентностью UI следующим образом:
Действие Действие запусков B.
Пользователь инициировал некоторые изменения UI в Действии B.
Действие B возвращается к Действию (вызовом к onBackPressed()
или что-то подобное)
Действие Действие перезапусков B.
Я хотел бы, чтобы изменения, внесенные в шаге 2, были видимы на шаге 4.
Я попытался использовать singleInstance
действие наклеивает Действие B напрасно. Я также предпочел бы более изящное решение, чем простая запись всех свойств объектов к таблице SQLite или файлу. Кажется, что это поведение должно быть легко достижимым, учитывая, что Android делает это автоматически для вызовов к onBackPressed()
где UI родительского Действия сохраняется.
Любая справка очень ценится.
Действие A запускает действие B
.
Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivityForResult(intent);
Запустите действие B из действия A, используя startActivityForResult.
Пользователь запускает некоторые изменения пользовательского интерфейса в Мероприятие B
.
Действие B возвращается к действию A ( вызов onBackPressed () или что-то в этом роде аналогично)
Intent intent = new Intent();
intent.putExtra("change_value1", change1);
intent.putExtra("change_value2", change2);
setResult(RESULT_OK, intent);
finish();
Действие A повторно запускает действие B.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
/*
* Gets invoked on finish() from ActivityB.class
*/
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case 0:
if(resultCode == RESULT_OK){
String change1, change2;
change1 = data.getStringExtra("change_value1");
change2 = data.getStringExtra("change_value2");
Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivity(intent);
}
}
}
Подробнее о намерениях можно прочитать здесь .
Если вы хотите сохранять данные между несколькими активностями, лучше всего создать подкласс Application и поместить туда свои объекты. Тогда каждая порожденная вами деятельность сможет получить доступ к тем же объектам.
http://developer.android.com/reference/android/app/Application.html