【问题标题】:Why my activity's onStop() is not getting called only onPause() is getting called even when my activity is completely not visible?为什么我的活动的 onStop() 没有被调用,只有 onPause() 被调用,即使我的活动完全不可见?
【发布时间】:2017-08-14 16:21:26
【问题描述】:

我有一个活动MainActivity,我从那里打开一个活动TransactionActivity,但我遇到的问题是为什么我的MainActivity's onStop() 方法没有被调用,只有onPause() 被调用。我在 SO difference-between-onpause-and-onstop 上看到了这篇文章,这里在答案中写道,当您的活动的某些部分仍然可见时,onStop() 将不会被调用,唯一的 onpause 将被调用,但对于我的情况为 @ 987654329@ 完全不可见,为什么它的onStop() 没有被调用??

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

任何人,请告诉我这里发生了什么??

我的代码用于从MainActivity 调用TransactionActivity

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);

【问题讨论】:

    标签: android android-lifecycle


    【解决方案1】:

    请检查您的AndroidManifest.xml,可能您设置了透明主题。

    【讨论】:

    • 是的,我的是主题问题,我删除了半透明主题
    【解决方案2】:

    检查您的活动方式。项目“windowContentTransitions”为真会让

    【讨论】:

      【解决方案3】:

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

      onStop 仅在活动完成时调用。 例如,您可以在 startActivity(ActivityB) 之后调用 ActivityA.finish()。

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

      祝你好运!

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 2012-04-04
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多