Я думаю, что в этом случае вы можете использовать исключение try catch. Во-первых, попытайтесь обработать ответ как строку. если возникает ошибка, просто перехватите ошибку и обработайте ответ как массив.
Если он вызывается, это означает, что ваш процесс завершился или был убит системой.
onCreate
будет вызываться при каждом запуске вашей деятельности. Именно так работает жизненный цикл Activity , и вы ничего не можете с этим поделать.
Если вы хотите, чтобы ваш процесс оставался в памяти, вам следует рассмотреть его реализацию в качестве службы .
Android будет обрабатывать наиболее применимые виды и кэширование активности, и вам не нужно об этом беспокоиться. Я настоятельно предупреждаю против подхода Алеккипара. Это довольно наивно и только ухудшит производительность, а также создаст утечки памяти и устранит неправильное поведение.
Если вы чувствуете, что Activity создаются слишком часто, Я бы порекомендовал убедиться, что вы используете и правильно понимаете жизненный цикл Activity. Как и в любой системе, Android балансирует между эффективностью и возможностью повторного использования, и всегда есть какие-то компромиссы.
Вы упомянули распространенное заблуждение, касающееся анализа XML. XML для представлений хранится не как чистый XML, а скорее в скомпилированной форме для повышения эффективности. Вам не нужно беспокоиться об этом, поверьте, что система пытается сделать вещи настолько эффективными, насколько это возможно для вас.
Вы не можете предотвратить вызов onCreate при каждом создании Activity, потому что именно так все и работает.
Ваша проблема больше связана с архитектурой: у вас есть функция, которую вы очень используете часто, но вы посвящаете этому целую тяжелую деятельность.
Если вам нужна скорость и отзывчивость, ответ может быть ViewFlipper . Вы определяете уникальное действие, и когда вы используете свою функцию, вы просто меняете представление. Все ваше приложение загружается в самом начале, а затем остается в памяти, пока Dalvik не потребуются какие-либо. Вы можете найти довольно сложный пример в коде приложения с открытым исходным кодом astrid .