Так же, как примечание я всегда рекомендовал бы объяснить игнорирование:
@Ignore("This test will prove bug #123 is fixed, once someone fixes it")
я надеюсь, что junit xml средство форматирования отчета, используемое при запущении тестов от муравья, будет однажды включать проигнорированное количество (и причины) наряду с передачей, сбоем и ошибкой.
Если ваше приложение не было «остановлено», то №1 уже должен работать, а №2 просто требует сохранения любых значений, которые не управляются автоматически, в Bundle в onSaveInstanceState () , а затем восстановить их в onRestoreInstanceState () .
Это своего рода взлом, но я думаю, что лучшим вариантом для №1 в случае фактического завершения работы приложения было бы сохранить самое последнее Activity в onResume каждого из ваших классов Activity, тогда, когда вы впервые запускаете onCreate вашего первого действия, выполните проверку, а затем запустите правильное действие ... возможно, даже вставьте пустое действие в начале. Примерно так:
StartActivity:
public class StartActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// get last open Activity
String lastActivity = PreferenceManager.getDefaultSharedPreferences(this).getString("last_activity", "");
if (last_activity == MyActivity2.getSimpleName()) {
startActivityForResult(new Intent(this, MyActivity2.class));
} else if (last_activity == MyActivity3.getSimpleName()) {
startActivityForResult(new Intent(this, MyActivity3.class));
} else {
// assume default activity
startActivityForResult(new Intent(this, MyActivity1.class));
}
}
public void onActivityResult() {
// kill the activity if they go "back" to here
finish();
}
}
Затем во всех остальных Activity (MyActivity1,2,3) сохраните значения следующим образом:
@Override
public void onResume() {
Editor e = PreferenceManager.getDefaultSharedPreferences(this).edit();
e.putString("last_activity", getClass().getSimpleName());
e.commit();
super.onResume();
}
You ' Мне также придется вручную сохранять / восстанавливать данные для каждого действия. Вы можете сохранить все необходимые значения в настройках внутри onPause () каждого Activity, а затем восстановить их в onResume ().
Имейте в виду, что onSaveInstanceState () не работает в долгосрочном состоянии, т.е. пользователь выключает телефон, а затем включает его в неопределенный момент позже. Вам нужно будет создать свой собственный механизм долгосрочного состояния, если вы хотите, чтобы ваше государство выдерживало циклы подачи электроэнергии.
Я считаю, что вы хотите реализовать onSaveInstanceState, и это сохранит текущее состояние ваших действий в пакете. Этот пакет будет передан в вашу активность в onCreate, и вы сможете использовать его для сброса значений.
http://developer.android.com/guide/topics/fundamentals.html#actstate