在调用Activity.OnStop时,不会调用Fragment.OnStop

时间:2019-03-13 14:29:04

标签: android xamarin.android

我有ActivityA,其中包含FragmentF
ActivityA还包含NavigationDrawer基础结构。

启动应用程序时-一切都很好。
被称为(以及其他):

ActivityA.OnStart
FragmentF.OnStart
ActivityA.OnResume
FragmentF.OnResume

..并显示内容。

但是当我按下主屏幕(以最小化应用程序并显示主屏幕)时,就会出现问题:
ActivityA.OnStop 称为
FragmentF.OnStop 未被呼叫

有趣的事实:
-如果我在NavigationDrawer中切换项目,则会调用FragmentF.OnStop ,并将另一个片段的内容加载到ActivityA
中 -在所有情况下(尽量减少NaviDrawer中的应用和切换内容),FragmentF.OnPause始终被调用

作为一种解决方法,我将代码(预期将在OnStop中使用)放入OnPause,但想知道:
-为什么不FragmentF.OnStop被称为
-如何称呼它

我正在使用Xamarin(因此是CamelCase的惯用约定:)-但我不怀疑该平台存在bug,似乎是Android的本机行为。

1 个答案:

答案 0 :(得分:1)

首先,我不知道您的项目中使用哪种特定的布局或使用其他插件。我在演示中对其进行了测试(活动包含片段)。

github.com/851265601/FragmentDemo

当我单击主页按钮时,Onstop中的Fragment就像本演示中的屏幕快照一样被调用。此问题可能与其他原因有关,您是否使用Util.log生成它并捕获logcat中的日志。注意:请勿将耗时的操作放在OnPause