我有一个具有服务类的应用程序,该应用程序在后台和其他 Activity 中运行。在 Activity 中,当我从数据库获取数据时,我会执行以下操作:
databaseHelper = new DBNotifyHelper(this);
Cursor c = databaseHelper.getNotify(myState, myVariable, myVariable2);
我的 DBNotifyHelper 中的 getNotify 方法是:
public Cursor getNotify (String myState, String myVariable, String myVariable2)
{
return getReadableDatabase().rawQuery("SELECT * FROM Notify WHERE State = ? AND myVariable= ? AND myVariable2= ?", new String[] {myState, myVariable, myVariable2});
}
它工作正常,但在服务中不起作用。我如何在服务中得到相同的东西?我不用光标??请帮助我(抱歉我的英语)。
最佳答案
看来,问题可能是由于不同线程对数据库的并发访问造成的。实例化此 SQLiteOpenHelper(构造函数参数)时尝试使用 Application Context
,这样就不会泄漏其他上下文。
如果没有帮助,请显示您的 SQLiteOpenHelper
代码。
编辑:单击带有 NullPointerException 的字符串并给我们一个字符串,从中抛出它。
关于java - 从Service类中的SQLliteDatabaseHelper获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33759330/