Android - как завершить активность, когда система пытается восстановить ее после убийства - PullRequest
1 голос
/ 31 января 2012

Я написал игру, в которой у меня есть действие A (главное меню) и действие B (игровой экран).
Иногда Android может убить мое приложение. Затем при перезапуске Android пытается восстановить действие B со значениями по умолчанию, которые, конечно, в настоящее время недопустимы.
Я знаю, что должен сохранить и восстановить состояние экземпляра, но слишком много переменных и других вещей, о которых нужно заботиться, я просто не хочу этого делать.
Я сохраняю ход игры в методе onStop (), поэтому вместо этого я хотел бы просто завершить действие B, когда система пытается его восстановить, и вернуть пользователя в главное меню, откуда он мог загрузить последнюю сохраненную игру.

Короче говоря, я написал этот код, и он работает. Но я не уверен, что этот код безопасен и будет работать правильно во всех ситуациях.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState!=null) {finish(); return;}
    ....

1 Ответ

0 голосов
/ 31 января 2012

Чтобы сделать его более понятным и избежать непреднамеренных проблем позже, я бы посоветовал передать логическое значение в onSaveInstance () и прочитать его обратно в onCreate (), а также, основываясь на этом finish (), в вашем Activity.

...