1

在我当前的 android 应用程序中,有两个活动。父活动启动子活动。在这个应用程序中,子活动也可以独立运行,但它不包括完整的功能集。我目前正在为 AndroidTV 开发。我通过使用 adb shell dumpsys 活动活动进行了验证 当我运行独立的子活动应用程序时,然后: 1.在非受限配置文件/正常模式下:堆栈跟踪将子活动显示为启动时最重要的活动,正如预期的那样。2.当我进入受限配置文件模式时:堆栈跟踪将子活动的另一个实例显示为最顶层的活动,并且较旧的子活动存在,但已按预期移动到堆栈的下方。3.在退出受限配置文件模式并重新启动应用程序时,它会按预期启动旧的子活动实例。我在 DDMS 中验证,一旦我进入受限配置文件,它就会显示这两个进程,即它不会杀死较旧的子活动。

问题是当我运行由父(P)和子(C)应用程序组成的完整应用程序时。1.当我在非限制/正常模式下运行应用程序时:堆栈跟踪在顶部显示 C,然后是 P,这是预期的。2.但是当我进入受限配置文件模式时,不是将旧的活动移到后面的堆栈中,而是将它们完全从堆栈中删除!我知道这是可能的,因为 Android 操作系统可以在内存问题的情况下从堆栈中删除进程。但不应该在需要时将它们带回堆栈吗?因此,每当我退出 Restricted Profile 并再次重新启动时,它都会设法获取较旧的子活动,但较旧的父活动不存在,这会导致空白屏幕。

4

0 回答 0