Привет, Мы сталкиваемся с непонятной проблемой в нашем приложении для Android. В нашем приложении мы сохраняем все необходимые объекты/данные в объекте Common (называемом объектом A) при запуске приложения (первая активность). Мы сохранили сам контекст в этом объекте. Всякий раз, когда нам нужен контекст в нашем приложении, мы получаем контекст из объекта A и используем его. Все случаи его работы прекращаются, за исключением случаев, когда дело касается.
i) Пока наше приложение находится в фоновом режиме, мы играли в некоторые игры высокого уровня. Теперь мы вернулись в приложение с помощью минимизированного экрана (последние приложения). Внезапно приложение разбилось.
ii) Если мы заставили остановить приложение с помощью настроек и вернулись в приложение с помощью минимизированного экрана, произойдет один и тот же сбой.Объект становится пустым
Оба случая, объект A становится нулевым (он может быть удален GC), поэтому все операции, зависящие от объекта A, получают исключения.
Почему это происходит? Как мы мешаем GC собирать объект A? Как мы можем справиться с остановкой силы? Пожалуйста, дайте любые идеи.
Вы не можете заставить GC или систему убить ваш процесс. В таких случаях вы должны найти способ сериализации/десериализации вашего объекта. –
Это, вероятно, самая важная концепция, которую вы должны понимать при написании приложений для Android. http://developer.android.com/training/basics/activity-lifecycle/index.html – Kuffs
Android (на самом деле, Dalvik) НЕ объединяет отдельные объекты, если ваше приложение не работает, и ссылки на него отсутствуют. Я понятия не имею, где этот миф начался. Ваше ** приложение ** может быть убито, и в этом случае все начинается с нуля. Если вам нужно сохранить состояние, сериализуйте его с помощью 'onPause()' и/или 'onStop()'. Примечание. 'OnDestroy()' полезно, только если вы закончили() 'действие. Кстати, если этот «контекст», который вы храните, является контекстом «Активность», вы делаете все это неправильно. – Simon