【发布时间】:2016-11-19 08:35:55
【问题描述】:
我目前正在为我的项目开发一个 android 应用程序。
我的项目旨在使用 Handler post delayed 在后台运行多个倒数计时器(不超过 50 个)。
每隔几秒,我都必须查询我的表以更新某些特定的列。
我的查询是用try catch 包装的,我正在关闭finally 的数据库。
这种方法在单个线程上正常工作,但是一旦它变成多个线程,
它给了我一个类似the database is already close but morethan one thread is trying to access it的错误。
所以我想出了一个主意,除非整个应用程序都关闭,否则不要关闭数据库。
所以我的问题是,我应该按照我的想法去做吗?还是有更好的方法?
【问题讨论】:
-
您正在某处关闭数据库。仔细检查您复制粘贴的代码
-
@Chisko - 很抱歉,如果我对我的问题造成了误解,请仔细阅读问题。我说
I am closing the database at finally(我知道我在做什么,我在哪里关闭数据库,我也知道错误/问题在哪里),因为它是由多个线程访问的,所以会出错。另请阅读the last Line我写的。 -
在这种情况下,您没有提供足够的背景来说明您要完成的工作。如果其他线程要使用它,为什么要关闭数据库?关于创建线程和访问 try catch 块之外的资源有什么不清楚的地方?
-
你能发布你的代码而不是我们假设很多事情吗?
标签: java android multithreading