我有3个活动A,B和C. A是主要活动,B是A的孩子,C是B.的孩子。 我正在使用启动模式"标准"为每一项活动。现在我已经启动了活动C,因此活动堆栈是[A,B,C]。如果我现在按下后退按钮,C会像人们期望的那样被销毁,但不是仅返回到B活动(现在位于堆栈顶部),此活动也会被销毁,并且会创建一个新的B实例(不使用savedInstanceState)。这是正常行为吗?
如果我将B的启动模式改为singleTop,我就像预期的那样返回B.
编辑:我没有在清单文件中设置其他值,除了上面解释的子父关系。我正在使用支持库版本7.22.1.1,min sdk版本15和目标sdk版本21.我在模拟的Nexus 5上运行应用程序。
答案 0 :(得分:0)
也许你的初始化代码在onStart()或onResume()而不是onCreate()中?我建议在所有onXXX()方法中添加日志语句,以便准确跟踪所调用的内容。也许这会提供洞察力,因此您可以转移代码并防止此行为。