在我当前的Android应用程序中,有两个活动.Parent活动启动子活动。在此应用程序中,子活动也可以作为独立运行,但它不包含完整的功能集。 我目前正在为AndroidTV开发。我通过使用验证 adb shell dumpsys活动活动 当我运行独立子活动应用程序时,然后: 1.在非限制配置文件/普通模式下: 如预期的那样,堆栈跟踪将子活动显示为启动时最重要的活动。 2.当我进入限制配置文件模式时: 堆栈跟踪将子活动的另一个实例显示为最顶层的活动,并且旧的子活动存在,但已按预期在堆栈中移动到下方。 3.在退出受限制的配置文件模式并重新启动应用程序时,它会按预期启动旧的子活动实例。 我在DDMS中验证,一旦我输入限制性配置文件,它就会显示这两个过程,即它不会杀死较旧的子活动。
问题是当我运行由父(P)和子(C)应用程序组成的完整应用程序时。 1.当我在非限制/普通模式下运行应用程序时: 堆栈跟踪显示C在顶部,然后是P,这是预期的。 2.但是当我进入受限制的配置文件模式时,它不会在后面的堆栈中移动下面的旧活动,而是将它们从堆栈中完全移除!我知道这是可能的,因为Android OS可以在发生内存问题时从堆栈中删除进程。但是,如果需要,还不应该将它们重新置于堆栈中吗? 因此,每当我退出Restricted Profile并重新启动时,它会以某种方式设法获取较旧的子活动,但不存在较旧的父活动,这会导致显示空白。