Вызов startActivityOnResult () автоматически вызывает методы текущей активности onPause (), onStop () и onDestroy () - PullRequest
3 голосов
/ 16 марта 2012

Я начинаю другое действие, вызывая startActivityForResult(), и после нажатия кнопки назад вызывается метод onCreate моего предыдущего действия, следовательно, воссоздается все действие.

При отладке я обнаружил, что вызов startActivityOnResult() автоматически вызывает

onPause()
onStop()
onDestroy()

методы текущей деятельности. Это нормальное поведение, потому что я прочитал это вызывает только onPause() метод при запуске другого действия.

Это мой код:

    @Override
public void onResume() {
    super.onResume();
}

@Override
public void onPause() {
    super.onPause();

}

@Override
public void onStop() {
    super.onStop();

}

@Override
public void onDestroy() {
    super.onDestroy();
}


public void showScore(View view) {
    Intent i = new Intent(StartMultipleChoiceActivity.this, ScoreActivity.class);
    i.putExtra("blockPosition", blockPosition);
    int itemVisited=submittedAnswers.size();
    i.putExtra("itemVisited", itemVisited);
    int itemCorrect=correctAnswers.size();
    i.putExtra("itemCorrect", itemCorrect);
    startActivityForResult(i,1);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
}

Ответы [ 2 ]

3 голосов
/ 16 марта 2012

onPause() и onStop() совершенно нормально.Они будут вызываться каждый раз, когда ваша деятельность больше не имеет ввода на переднем плане (onPause()) и больше не видна (onStop()).

onDestroy() следует вызывать только в том случае, если вы как-то заканчиваете действие самостоятельноили, возможно, если вы запускаете действие в отдельном приложении, а Android необходимо прервать процесс вашего собственного приложения, чтобы освободить ОЗУ.

0 голосов
/ 02 декабря 2013

У меня следующая проблема.Я решил это, убрав флаг FLAG_ACTIVITY_NEW_TASK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...