Когда мое приложение загружается, у меня появляется анимация экрана. В onAnimationEnd я вызываю расписание, чтобы через 2 секунды оно вызывало функцию, которая будет вызывать анимацию, чтобы снова оживить представление.В настоящее время он оживляется, но планировщик никогда не вызывает анимацию.Если я щелкну домой, то вернусь к приложению, которое немедленно вызывает animate.Зачем, если расписание работает, приложение ждет, пока оно не потеряет фокус, а затем возвращается обратно, чтобы фактически вызвать функцию, которую должен вызывать расписание.Вот код:
Они определены в onCreate:
slideTopIn = AnimationUtils.loadAnimation(this, R.anim.slide_top_in);
slideTopIn.setAnimationListener(slideTopInListener);
slideTopOut = AnimationUtils.loadAnimation(this, R.anim.slide_top_out);
slideTopOut.setAnimationListener(slideTopOutListener);
freeAlertMsg.startAnimation(slideTopIn);
Они определены вне onCreate в классе активности:
private AnimationListener slideTopInListener = new AnimationListener(){
public void onAnimationEnd(Animation anim){
alertTimer.schedule(new Runnable() {
public void run() { hideFreeAlert(); }
}, 2, TimeUnit.SECONDS);
};
public void onAnimationStart(Animation anim){
freeAlertMsg.setVisibility(View.VISIBLE);
};
public void onAnimationRepeat(Animation anim){
};
};
private AnimationListener slideTopOutListener = new AnimationListener(){
public void onAnimationEnd(Animation anim){
mainScreen.removeView(freeAlert);
};
public void onAnimationStart(Animation anim){
Log.d("Animation Listener","slideTopOutListener");
};
public void onAnimationRepeat(Animation anim){
};
};
private void hideFreeAlert(){
freeAlertMsg.startAnimation(slideTopOut);
}
Так что в основном это выполняетсяНачальная анимация (slideTopIn).Тогда ничего не происходит.Если я щелкну домой, а затем вернусь к приложению, startAnimation (slideTopOut) немедленно выполнится.Я предполагаю, что расписание действительно выполняется, но по какой-то причине анимация никогда не запускается.