泄漏:很大一部分都是Stream未关,cursor未关。有时我们知道是这些,但是因为这个不确定时间就会爆发,导致APP崩溃。所以我们就想找个能让它尽快现形的方法---程序启动严格模式。
核心:使用程序启动严格方式,泄漏很快就会现形;
方法:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
//TODO 使用程序的严格模式来尽快找出泄漏的内存问题
if(BuildConfig.DEBUG){
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build()
);
}
super.onCreate(savedInstanceState);
}
解决参考:
SQLite Android Database Cursor window allocation of 2048 kb failed - Stack Overflow



