1

我已经在我的应用程序中使用以下选项实现了 StrictMode:

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                .detectNetwork()
                .penaltyLog()
                .build());

        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                .detectActivityLeaks()
                .penaltyLog()
                .penaltyDeath()
                .build());

应用程序有两个活动(A 和 B),场景是:

  1. StrictMode 被实现到活动 A 的 onCreate 方法中
  2. B活动从A开始
  3. B活动结束,回到活动A
  4. B活动从A开始
  5. B活动结束,A活动被StrictMode杀死(penaltyDeath)

当活动 A 被杀死时,我收到一条消息:

A类活动;实例=2;限制=1 android.os.StrictMode$InstanceCountViolation: 类 AActivity; 实例=2;限制 = 1 在 android.os.StrictMode.setClassInstanceLimit(StrictMode.java:1)

Activity B 通过自定义按钮启动(它只有空的构造函数,与 B 活动相同)。我试图在 StrictMode 中设置类实例限制但没有结果。奇怪的是,如果没有penaltyDeath() 选项,活动实例的数量会增加到15-17,然后GC 即将到来。

有人对 StrictMode 有类似的问题吗?

4

0 回答 0