我已经在我的应用程序中使用以下选项实现了 StrictMode:
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectNetwork()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectActivityLeaks()
.penaltyLog()
.penaltyDeath()
.build());
应用程序有两个活动(A 和 B),场景是:
- StrictMode 被实现到活动 A 的 onCreate 方法中
- B活动从A开始
- B活动结束,回到活动A
- B活动从A开始
- 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 有类似的问题吗?