当前位置: 首页 > 面试题库 >

关闭从未明确调用

艾宏远
2023-03-14
问题内容

我有一个由sqlite数据库提供的listview。我在几个不同的点调用fillData()来更新listview。

private void fillData() {
        mDbHelper.open();
        Cursor c = mDbHelper.fetchAllNotes(table, columns, selection, selectionArgs, null, null);
        startManagingCursor(c);

        String[] from = new String[] { "quantity", "color", "style" };
        int[] to = new int[] { R.id.textQuantity, R.id.textColor, R.id.textStyle };
        setListAdapter(new SimpleCursorAdapter(this, R.layout.recordrow, c, from, to) {
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View v = super.getView(position, convertView, parent);
                return v;
            }
        });
}

那行得通…问题是,当我打开/关闭/跳转活动时,logcat中出现错误。它不会使程序崩溃。错误是:

请确保您在游标上显式调用close(),
并且
从未在数据库上显式调用close()

因此,在})下;如果我将mDbHelper.close()放进去,则崩溃,提示数据库未打开。如果我放入c.close(),则列表视图将永远不会填充。我试着将它们放在其他地方,这给我说光标/数据库已经关闭的错误。有什么想法做什么?


问题答案:

如果所有内容都在一个Activity中,则只需打开数据库并在onCreate()中打开光标,然后在onDestroy()中关闭即可。另一个选择是使用单例或平滑,如果为空,它将在操作之前打开数据库或游标。

造成错误的原因是,如果您要完成对数据库的操作,则应将其关闭。



 类似资料:
  • 我正在处理一个需要使用jFileChooser Swing窗口的项目。当单击“取消”或“打开”时,窗口不会关闭。在查看了StackOverflow上的许多文章以及JFileChooser教程和文档之后,我不知道是什么导致了这个重复的问题。 我正在与NetBeans一起使用它的swing编辑器。我也在Eclipse中尝试了该程序作为测试,并收到了相同的结果。

  • 有人能帮我吗?

  • 我正在尝试使用Springboot反应式webclient进行HTTP调用。远程服务器错误导致连接关闭。 请查找以下使用Webclient进行rest调用的代码。 Webclient创建的代码: 第一次通话后,我收到以下日志: 当我在一段时间后(比如10分钟)拨打电话时,连接将变为非活动状态。我正在获取以下日志: 我发现连接没有正确返回到池。配置中是否缺少任何内容?我是否已正确关闭连接?我想这应该

  • 问题内容: 我想在Java中实现SSL代理。我基本上打开了两个套接字,并运行了两个线程,这些线程将写入他们从中读取的内容,反之亦然。每个线程如下所示: 每个线程只会关闭输入套接字,因此最终两个套接字都会关闭。 但是,如果我想使用an 怎么办?似乎那里不支持这些方法。这是我得到的例外。 我想出的是: 每当套接字结束时,我都必须捕获并忽略套接字末尾异常。 我的问题是: 如果不受支持,我怎么会从那里得到

  • 为什么Eclipse在下面的代码中给了我变暖的“资源泄漏:'in'从不关闭”?