android - 如何在我的java类中使用leakcanary.AppWatcher?
问题描述
我正在尝试使用 LeakCanary 在我的 Android 应用程序中检测我的服务类中的泄漏,并查看以下配方:
https://square.github.io/leakcanary/recipes/#watching-objects-with-a-lifecycle
它正在调用 AppWatcher.objectWatcher.watch() 来 wath Service 类,我也想做同样的事情。从我的代码中,我需要访问 AppWatcher 对象,但是构建失败。(“包leakcanary.AppWatcher不存在”等)
import com.squareup.leakcanary.AppWatcher;
或者
import leakcanary.AppWatcher;
我已经将我的 bazle 设置配置为在我的依赖项中包含以下内容:
"com.squareup.leakcanary:leakcanary-android:aar:2.4"
"com.squareup.leakcanary:leakcanary-object-watcher-android:aar:2.4"
而且,根据 logcat 日志,当我启动我的活动时,LeakCanary 实例被成功调用。(所以,库依赖本身已经可以了,我应该能够从我的 java 代码中访问 AppWatcher 单例来监视我的服务吗?)
解决方案
看起来下面的编译没有错误,并且似乎调用了 watch() 函数(在 logcat 中,LeakCanary 说它正在监视我的服务。)
import leakcanary.AppWatcher;
...
onDestroy() {
super.onDestroy();
if (AppWatcher.INSTANCE.isInstalled()) {
AppWatcher.INSTANCE.getObjectWatcher().watch(
this,
"MyService received Service#onDestroy() callback"
);
}
推荐阅读
- python - Selenium:使用用户名/密码通过代理连接 - 如何?
- cuda - 数组结构的数组 CUDA C
- php - 与变音符号匹配的PHP PDO搜索不起作用
- javascript - 如何使用 JSXGraph 在饼图中添加扇形角度?
- python - 连接两个一维数组
- c# - 游戏构建后出现问题
- python - 使用 R 中的 keras 使用 Pima Indian 糖尿病数据集来拟合 Conv1d 以对糖尿病患者进行分类
- sql - PostgreSQL 查询未按预期返回结果
- .net - Async/Await:为什么await后面的代码也在后台线程上执行,而不是在原来的主线程上执行?
- sql-server - 在管理数据库服务器上创建 SQL 登录和授予 SQL 权限配置失败