Жизненный цикл просмотра android

Я хочу, чтобы какая-то анимация просмотра происходила после возобновления моей деятельности, но мне не удается поймать время после загрузки всех представлений и запуска анимации до загрузки всех представлений (до перехода анимации). я пытался использовать onDraw, onWindowFocusChange, onResume, я обнаружил, что onDraw — это последний метод в жизненном цикле представления, но я все еще видел, что анимация начинается до того, как пользователь увидит все представления


person user3863927    schedule 07.09.2014    source источник
comment
опубликуйте код вашего onCreate() и когда вы начнете анимацию.   -  person Sagar Pilkhwal    schedule 07.09.2014
comment
Я запускаю анимацию методом onDraw   -  person user3863927    schedule 08.09.2014


Ответы (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
comment
Это очень полезно, потому что показывает фактический жизненный цикл представления, а не только первую половину, как в большинстве найденных мной документов. Спасибо. - 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
comment
Мой взгляд уже во фрагменте, это вообще не относится к моему вопросу. - person user3863927; 08.09.2014
comment
Так почему бы вам не перенаправить вызовы жизненного цикла Fragment на ваше представление? - person Lars Blumberg; 08.09.2014
comment
потому что я вижу анимацию после того, как она началась, когда я помещаю свою анимацию в onDraw() nethod - person user3863927; 08.09.2014
comment
В моей реализации я делаю это, но проблема все еще возникает - person user3863927; 09.09.2014
comment
Я думаю, что без публикации вашего кода никто не сможет вам помочь - person Lars Blumberg; 09.09.2014

Вы можете создать заставку. В этой заставке вы можете показать свою анимацию.

Как сделать заставку?

также, если вам нужно рассчитать что-то, пока оно показывает анимацию, используйте поток для расчета и отправки его в свою основную деятельность

Как передавать данные между действиями в приложении Android?

person bmavus    schedule 07.09.2014
comment
Это не имеет ничего общего с активностью всплеска или с передачей данных между действиями, у меня есть анимация, которую я хочу запустить в тот момент, когда действие видно пользователю и отображаются представления. где бы я ни пытался до сих пор поставить начало анимации было слишком рано - person user3863927; 08.09.2014