Activity в Android приложении описана в документации,
деятельности является единой, целенаправленной вещь, которую пользователь может сделать.
Обычно это что-то, что видно на экране и имеет внимание пользователя. Он связал с ним государственную машину, которая описывает жизненный цикл показа и скрытия при активизации другой активности. Операционная система имеет право запускать и останавливать действия, которые она выполняет, и позволяет память.
Кроме того, ключевым моментом архитектуры Android является то, что действия и службы являются многократно используемыми компонентами программного обеспечения и не обязательно имеют отношение один к процессам. Внутри того же процесса, что и ваша деятельность, может быть услуга, используемая другим процессом в системе.
Если часть JNI вашего кода по-прежнему работает в фоновом режиме, когда деятельность получила onPause()
, onStop()
, onDestroy()
уведомления, это может быть только потому, что вы не пересылаются эти сообщения в ней. Система, конечно же, не знает, как очистить использование ресурсов собственного кода - в частности, память, выделенная new()
или malloc()
. Если вы не освободите его, он будет восстановлен только после завершения процесса.
Если вы обеспокоены тем, что ваша деятельность не будет достаточно быстро убита системой и, как результат, содержит ссылки на ресурсы на родине, это хороший признак того, что система не ограничена ресурсами.
Возможно, вы захотите внедрить нативную часть своего приложения в качестве Service и выполнить его самоуничтожение через короткие промежутки времени на dis-iuse.
Вы не ответили на вопрос «Почему Android убивает только активность вместо всего процесса?». Для NDK в onStop не вызываются обратные вызовы, это то, что пользователь спросил. – RelativeGames
Хорошо, я обновил свой ответ, чтобы попытаться ответить на это более четко, спасибо – krsteeve
У вас есть источник для «Действия, применение и только позже процесс» разрушения? У меня [всегда были проблемы с получением информации об этом] (http://stackoverflow.com/questions/8050003/details-of-android-application-components-destruction-and-recreation) (см. Ссылку CommonsWare для еще большей путаницы) – kaay