Я хочу, чтобы какая-то анимация просмотра происходила после возобновления моей деятельности, но мне не удается поймать время после загрузки всех представлений и запуска анимации до загрузки всех представлений (до перехода анимации). я пытался использовать onDraw, onWindowFocusChange, onResume, я обнаружил, что onDraw — это последний метод в жизненном цикле представления, но я все еще видел, что анимация начинается до того, как пользователь увидит все представления
Жизненный цикл просмотра android
Ответы (3)
Вот жизненный цикл Android Activity и жизненный цикл Android View, протестированный на моем устройстве (Sony Z1 Compact)
Start an Activity
Activity: onCreate
Activity: onStart
Activity: onResume
View: onAttachedToWindow
View: onWindowFocusChanged true
# Running
Activity: onPause
View: onWindowFocusChanged false
# Start to another Activity
# Back from another Activity
Activity: onResume
View: onWindowFocusChanged true
# Running
View: onWindowFocusChanged false
Activity: onPause
Activity: onStop
Activity: onDestroy
View: onDetachedFromWindow
Turn Off Screen
Activity: onCreate
Activity: onStart
Activity: onResume
View: onAttachedToWindow
View: onWindowFocusChanged true
# Running
Activity: onPause
Activity: onStop
View: onWindowFocusChanged false
# Turn Off Screen
# Turn On Screen
Activity: onStart
Activity: onResume
View: onWindowFocusChanged true
# Running
View: onWindowFocusChanged false
Activity: onPause
Activity: onStop
Activity: onDestroy
View: onDetachedFromWindow
Switch Application
Activity: onCreate
Activity: onStart
Activity: onResume
View: onAttachedToWindow
View: onWindowFocusChanged true
# Running
Activity: onPause
View: onWindowFocusChanged false
Activity: onStop
# Switch to Application
# Back from Application
Activity: onStart
Activity: onResume
View: onWindowFocusChanged true
# Running
Activity: onPause
View: onWindowFocusChanged false
Activity: onStop
Activity: onDestroy
View: onDetachedFromWindow
person
Afrig Aminuddin
schedule
22.08.2017
Это очень полезно, потому что показывает фактический жизненный цикл представления, а не только первую половину, как в большинстве найденных мной документов. Спасибо.
- person Stephen M -on strike-; 04.09.2018
Рассмотрите возможность использования фрагмента вместо представления в виде фрагментов, если представления не имеют жизненного цикла. . Жизненный цикл привязан к их деятельности, в которую они встроены.
См. также: В чем преимущество использовать фрагменты в Android, а не представления?
Изменить:
Попробуйте начать анимацию с задержкой:
new Handler().post(new Runnable() {
@Override
public void run() {
// Start your animation here.
}
});
person
Lars Blumberg
schedule
07.09.2014
Мой взгляд уже во фрагменте, это вообще не относится к моему вопросу.
- person user3863927; 08.09.2014
Так почему бы вам не перенаправить вызовы жизненного цикла Fragment на ваше представление?
- person Lars Blumberg; 08.09.2014
потому что я вижу анимацию после того, как она началась, когда я помещаю свою анимацию в onDraw() nethod
- person user3863927; 08.09.2014
В моей реализации я делаю это, но проблема все еще возникает
- person user3863927; 09.09.2014
Я думаю, что без публикации вашего кода никто не сможет вам помочь
- person Lars Blumberg; 09.09.2014
Вы можете создать заставку. В этой заставке вы можете показать свою анимацию.
также, если вам нужно рассчитать что-то, пока оно показывает анимацию, используйте поток для расчета и отправки его в свою основную деятельность
Как передавать данные между действиями в приложении Android?
person
bmavus
schedule
07.09.2014
Это не имеет ничего общего с активностью всплеска или с передачей данных между действиями, у меня есть анимация, которую я хочу запустить в тот момент, когда действие видно пользователю и отображаются представления. где бы я ни пытался до сих пор поставить начало анимации было слишком рано
- person user3863927; 08.09.2014
onCreate()
и когда вы начнете анимацию. - person Sagar Pilkhwal   schedule 07.09.2014