用StrictMode来检测SQLite的泄漏leaked优秀排错方法

在这里插入图片描述

用StrictMode来检测SQLite的泄漏leaked优秀排错方法

Chapter: Android与SQLite数据库

  1. SQLite 数据库的初步认识
  2. SQLite 数据库的一些基本操作
  3. SQLite 在 Android 开发中的简单应用演示
  4. Android SQLite 增删改查操作的补充说明
  5. 单独谈谈 Android Cursor 的使用细节
  6. getWritableDatabase()/getReadableDatabase()区别
  7. 用StrictMode来检测SQLite的泄漏leaked
    当一个应用变得复杂,SQLite使用得频繁,就容易出现数据库泄漏 leaked:

A SQLiteConnection object for database ‘nowamagic.db’ was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.

当代码过多,怎么排查呢?

一个方法是,使用android.os.StrictMode。

从 GINGERBREAD 开始 Android 就提供了 StrictMode 工具协助开发人员检查是否不小心地做了一些不该有的操作。使用方法是在 Activity 里面设置 StrictMode,下面的例子是打开了检查泄漏的 SQLite 对象以及 Closeable 对象(普通 Cursor/FileInputStream 等)的功能,发现有违规情况则记录 log 并使程序强行退出。

import android.os.StrictMode;

public class MainActivity extends Activity {
private static final boolean DEVELOPER_MODE = true;
public void onCreate() {
if (DEVELOPER_MODE) {
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
}
super.onCreate();
}
}
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值