onResume()のオーバーライドは正常に機能しますが、onPause / onStopは、アニメーションが完了するのを待たずに次の画面に移動します。
イベントを開始するものex。ボタンクリックは、開始アクティビティが呼び出される前にアニメーションを開始する必要があります。
button.setOnClickListener(new ViewOnClickListener() {
@Override
void onClick(... {
// start animations
// wait till they are finished
// start activity
}
});
新しいアクティビティを開始するすべてのイベントにはアニメーションコードが含まれるため、コードがいたるところに重複しないように、それをある種のヘルパークラスに移動することもお勧めします。元。
button1.setOnClickListener(new ViewOnClickListener() {
@Override
void onClick(... {
helper.AnimateViews(/* probably pass activity or context */);
// start activity
}
});
button2.setOnClickListener(new ViewOnClickListener() {
@Override
void onClick(... {
helper.animateViews(/* probably pass activity or context */);
// start activity
}
});
public class ViewAnimiationHelper {
public void animateViews(Activity activity) {
// find all views if not found then don't animate them
View view1 = activity.findViewById(R.id.view1);
if(view1 != null) {
// animate view
}
View view2 = activity.findViewById(R.id.view1);
if(view2 != null) {
// animate view
}
}
}
これはすべてsudojavaコードですが、うまくいけば、アイデアを得るのに十分です。幸運を!