Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android onResume中的信息阻止了另一个活动';自然灾害_Android - Fatal编程技术网

Android onResume中的信息阻止了另一个活动';自然灾害

Android onResume中的信息阻止了另一个活动';自然灾害,android,Android,我有以下两个活动,活动A和活动B 在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);

我有以下两个活动,活动A和活动B

在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并自行完成的代码运行后,按以下顺序调用activity life cycle回调:

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中的所有资源


有什么建议吗?谢谢

我之前调查过这个问题,发现Android操作系统不能保证活动一进入后台就会被销毁。首先,新活动将被赋予初始化并进入空闲状态的优先级只有在您以前的活动将被销毁之后。 因此,没有解决这一问题的本机解决方案。您不应该期望在调用
finish()
时立即调用onDestroy()。何时调用它完全取决于操作系统

检查这些线程-可能会对您的问题有所帮助: