为什么我的活动的onStop()没有被调用onPause()即使在我的活动完全不可见时也会被调用?

时间:2017-08-14 16:21:26

标签: android android-lifecycle

我有一个活动MainActivity,我正在开展一项活动TransactionActivity,但我遇到的问题是我的MainActivity's onStop()方法未被调用的原因onPause()被召唤。我在SO difference-between-onpause-and-onstop上看过这篇文章,在答案中写道,当您的某些活动仍然可见时,onStop()将不会被调用,只会调用onpause但对于我的情况,因为MainActivity's完全不可见,为什么onStop()没有被调用?

是否发生这种情况是因为某些Activity leak导致我的Activity留在内存中的任何内容,即使它完全不可见?

任何人,请赐教我这里发生了什么?

我的代码,用于从TransactionActivity

调用MainActivity
Intent i = new Intent(MainActivity.this, TransactionActivity.class);
Bundle b = new Bundle();
b.putInt("trans_type", 0);
i.putExtras(b);
startActivity(i);
overridePendingTransition(0, 0);

3 个答案:

答案 0 :(得分:0)

当您从上一个活动中调用另一个活动时,它会被放置在新活动的“下方”。 因此,一旦您按下,将显示之前的活动。 这是Android中的默认行为。

仅在活动结束时才会调用

onStop。 例如,您可以在startActivity(ActivityB)之后调用ActivityA.finish()。

仍然不确定为什么在onStop方法中需要代码。这很危险,因为如果需要释放一些内存,系统本身可以调用onStop。可能有更好的方法来实现你想要实现的目标。

祝你好运!

答案 1 :(得分:0)

请检查您的AndroidManifest.xml,也许您已设置透明主题。

答案 2 :(得分:0)

检查您的活动风格。 “ windowContentTransitions”项为true会使