2012-04-28 6 views
0

Мы используем различные действия для навигации по нашему приложению. Один из них очень сложный и содержит множество вложенных представлений/изображений и т. Д., Поэтому, когда я использую startActivity(intent1) в действии до него, есть небольшая задержка, и он чувствует/выглядит лагги. Вся информация, необходимая для создания просмотров контента, известна заранее.Создание/рендеринг Перед запуском

Итак, мой вопрос: есть ли разумный способ пререндер/предварительная загрузка активности или ее содержимого?

Как я понял, намерение содержит только информацию о следующем действии, но не экземпляр самой операции, поэтому я предполагаю, что нет способа сообщить намерению создать активность до того, как я вызову startMethod.

Одной из идей, которую я хотел создать, было создание статического представления перед началом действия и установка этого представления как contentView в методе onCreate(). Но мне кажется, что это плохой хак.

Заранее благодарен!

+1

Используйте [Traceview] (http://developer.android.com/guide/developing/debugging/debugging-tracing.html), чтобы найти, где находится ваша медлительность, а затем исправьте его. – CommonsWare

+0

Я использовал отслеживание уже и оптимизировал его до 1/5 времени, но там его все еще слишком медленно, и возможностей для улучшения нет. но спасибо за вход! – eyeballz

ответ

1

Лучшим решением было бы не начать совершенно новую деятельность, а использовать ViewPager или ViewFlipper. Переключение между представлениями должно быть почти мгновенным, и вы также получаете возможность легко применять анимацию.

Если это невозможно, вы можете начать новую деятельность, но там есть ViewSwitcher. Первый вид будет индикатором выполнения. Второй вид завышен и добавлен в коммутатор в фоновом потоке.

+0

да, и я сделаю это с моим следующим приложением, но проблема в том, что это испортит навигацию и концепцию приложения, если бы я использовал его вот так. например, мне пришлось бы отменить обратную кнопку, так как это один из способов навигации по приложению. – eyeballz

+0

Теперь я не знаю вашей концепции навигации, но я предполагаю, что с точки зрения пользователей единственной разницей было бы поведение задней клавиши, которое можно было бы относительно просто подражать. Переключитесь на первый взгляд, если отображается второй вид, иначе call finish(). – Renard

+0

, и я думаю, что анимация flip/page будет отличаться от остальных. и его довольно сложно подражать этому, потому что каждая версия android для Android имеет свою собственную страницу анимации между активностями. – eyeballz

Смежные вопросы