我正在尝试让自定义 CursorAdapter 正常工作。我的代码目前似乎运行良好。但基于 Android 文档,我担心它可能会以微妙的方式出错。
public class MyArrayAdapter extends CursorAdapter {
public MyArrayAdapter(Activity context, Cursor cursor) {
super(context, cursor, false);
....
}
...
}
该构造函数的注释为:
“允许控制自动重新查询的构造函数。建议您不要使用它,而是使用 CursorAdapter(Context, Cursor, int)。使用此构造函数时,将始终设置 FLAG_REGISTER_CONTENT_OBSERVER。”
并且 FLAG_REGISTER_CONTENT_OBSERVER 文档说:
“使用此标志时要小心:您需要从适配器取消设置当前光标,以避免由于其注册的观察者而导致泄漏。”
事实证明这是一个众所周知的问题,但我看到的所有建议的替代方案都指向 Compatibility Package 或 API11。我需要为 v2.1 编写代码,并且我想避免在这个项目中使用兼容性包。
我正在寻找解释使用上述构造函数的影响是什么,以及如何正确处理这些影响,或者寻找替代实现。我究竟如何“从适配器取消当前光标”?
相关问题,指向兼容包: