我有以下两个活动,ActivityA 和 ActivityB。
在 ActivityA.java
startActivity(new Intent(this, ActivityB.class));
finish();
在 ActivityB.java 中
public void onResume() {
super.onResume();
anim1 = new TranslateAnimation(0, 0, fromYDelta, -height);
anim1.setDuration(8000);
anim1.setFillAfter(true);
anim1.setStartOffset(0);
aView.startAnimation(anim1);
}
在 ActivityA 中启动 ActivityB 并完成自身的代码运行后,活动生命周期回调按以下顺序调用:
ActivityA.onPause();
ActivityB.onStart();
ActivityB.onResume(); //Start 8 seconds animation here
ActivityA.onStop();
ActivityA.onDestroy();
现在的问题是在调用 ActivityB.onResume() 后 8 秒调用了 ActivityA.onStop(),因为 ActivityB 的 onResume() 中启动了 8 秒动画。它在我的应用程序中导致了 OutOfMemoryError,因为 ActivityA.onDestroy() 被调用得很晚,系统不得不长时间持有 ActivityA 中的所有资源。
有什么建议么?谢谢!