Предотвращение разрушения действия новым намерением или переключением приложений

У меня есть деятельность, где я ничего не делаю со следующей функцией (onPause/onStop/onDestroy). Это просто, как это было, когда вы создаете деятельность с нуля.

Теперь, когда я переключаюсь на новое приложение или начинаю новое действие с новым намерением, действие уничтожается. Система Android вызывает onPause -> onStop -> onDestroy.

Как я могу запретить приложению вызывать onDestory для этого конкретного действия?

Код для начала новой деятельности:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
getApplicationContext().startActivity(intent);

Код манифеста:

    <activity android:name=".WebviewActivity">
    </activity>

Как видите, у меня там ничего нет.

2 ответа

Решение

Убедитесь, что вы случайно не включили режим "Не держать действия" в настройках разработчика:

https://stackru.com/images/0c6771611f24bb10b41f3323f1340a53619d885b.png

В общем, вы не можете, это метод жизненных циклов, вызываемый средой Android, и вы не можете его контролировать. Среда выполнения Android решает, когда вызывать эти методы.

Вы запускаете действие с помощью неявного вызова, поэтому среда выполнения Android определяет наиболее подходящее для него действие, и это действие может выполняться в своем собственном стеке, что может вызвать вызов onDestroy для вашего действия, поскольку оно больше не отображается.

Анкит

Другие вопросы по тегам