我回去后试图永久删除活动

时间:2018-03-09 11:02:17

标签: android memory android-activity

当我从主要活动A启动活动B然后返回时,应删除该活动。但事实并非如此。当我再次从A推出B时,我发现有些东西留下了。

我正在使用systrace来比较第一次B跑和第二次B跑的结果。我发现第二次B跑的处理能力较低。活动开始和通货膨胀时间大大减少。渲染响应是原始响应的2/3。

我尝试在活动B的onStop()onPause()上添加finish()。此外,在启动B活动的Intent中,我添加了标志以防止活动存储在堆。在清单上,我在活动B上添加了android:noHistory="true"。我甚至尝试手动调用GC。什么都没有帮助。

我可以重置B活动的唯一方法是完全关闭应用程序。如何完全删除活动B,包括当我返回主活动时留下的任何缓存内容?

1 个答案:

答案 0 :(得分:-1)

一旦你回到A,你是否正在运行B活动?

在终端中,运行 adb shell dumpsys activity | grep -i run

authority=x.y.z.com.android.tools.ir.server.InstantRunContentProvider
    Running activities (most recent first):
        Run #1: ActivityRecord{B_Activity t6}
        Run #0: ActivityRecord{A_Activity t6}

finish() B_Activity,然后返回A_Activity。

authority=x.y.z.com.android.tools.ir.server.InstantRunContentProvider
    Running activities (most recent first):
        Run #1: ActivityRecord{A_Activity t6}
        Run #0: ActivityRecord{B_Activity t6 f}

即使你完成它,你仍然可以看到B_Activity。