Я пытаюсь понять учебное пособие по тестированию активности на сайте Android. Один из тестов устанавливает счетчик в примере SpinnerActivity, вызывает паузу, затем сбрасывает счетчик, возобновляет и проверяет, правильно ли приложение восстановило состояние. Я вставил соответствующий код внизу этого вопроса для справки.
Я очень озадачен, почему человек, пишущий тест, считает, что вращатель мог быть поврежден между OnPause () и OnResume (). Не потому ли, что счетчик мог быть повторно использован в какой-то последующей деятельности и, таким образом, потерял свое состояние? Это единственное разумное объяснение, которое я могу придумать.
Я обеспокоен сохранением действий моего приложения, не являющихся членами виджета, таких как строки, целые и т. Д. Они инициализируются во время OnCreate и не изменяются пользователем. В результате я не вижу смысла сохранять их во время OnPause, потому что даже если операционная система напрямую завершает действие после паузы, OnCreate () будет повторно инициализировать эти элементы.
Безопасно ли тогда предполагать, что этим элементам, не являющимся виджетами, не будет причинен вред при приостановке (при условии, что приложение в конечном итоге возобновится?)
public void testStatePause() {
Instrumentation mInstr = this.getInstrumentation();
mActivity.setSpinnerPosition(TEST_STATE_PAUSE_POSITION);
mActivity.setSpinnerSelection(TEST_STATE_PAUSE_SELECTION);
mInstr.callActivityOnPause(mActivity);
mActivity.setSpinnerPosition(0);
mActivity.setSpinnerSelection("");
mInstr.callActivityOnResume(mActivity);
int currentPosition = mActivity.getSpinnerPosition();
String currentSelection = mActivity.getSpinnerSelection();
assertEquals(TEST_STATE_PAUSE_POSITION,currentPosition);
assertEquals(TEST_STATE_PAUSE_SELECTION,currentSelection);
}