В моем приложении Activity1 запускает Activity2 с помощью «startActivityForResult()».finish() в приложении закрывает приложение, а затем показывает предыдущее приложение.
Когда деятельности2 делается, следующий код называется:
Activity2.java
private void finishActivity(final boolean accepted)
{
Intent returnIntent = new Intent();
setResult(accepted ? RESULT_OK : RESULT_CANCELED, returnIntent);
finish();
}
Activity1 принимает этот обратный вызов, и если результат не RESULT_OK, он также заканчивается.
Activity1.java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == Globals.REQUEST_CODE_TOS)
{
if (resultCode != RESULT_OK)
finish();
}
}
После Activity1 заканчивает приложение закрывается, как и ожидалось.
ПРОБЛЕМА -
Однако, после того, как мое приложение закрывается, вместо того, чтобы идти на домашний экран, предыдущее приложение на стек кратко запускает вперед, а затем закрывает также! Затем я добираюсь до главного экрана.
В багтрекер Android я вижу подобную ошибку, перечисленных в случае, когда нажата кнопка назад, что я считаю, это то же самое, как вызов отделки():
https://code.google.com/p/android/issues/detail?id=71067
Я видя это на Nexus 5, работая 4.4.4.
Это просто ошибка? Или есть какие-то обходные пути для поведения?
EDIT -
Чтобы выяснить поведение я пожелаю:
В Google Maps, если вы откажетесь от TOS всплывающего окна, приложение закрывается, и вы идете прямо на главном экране. У какого-либо ранее открытого приложения нет неудобной вспышки.
Возможно, ошибка системы ... – StoneBird
«предыдущее приложение в стеке кратковременно запускается вперед, а затем закрывается!» Что такое «предыдущее приложение»? Вы имеете в виду Activity2? –
@ MarcinS. Нет, я имею в виду предыдущее приложение - например, после вызова функции finish() в моей верхней активности, Play Store ненадолго появляется, а затем возвращается, наконец, доставляя меня на главный экран. – Alchete