Android应用程序强制关闭数据库连接尝试

时间:2012-12-03 18:19:24

标签: android database android-sqlite

我正在尝试与我的应用建立数据库连接。它有一个访客的允许和拒绝按钮。每当我尝试调用数据库类的操作时,我的app力就会关闭。例如,当我单击“允许”按钮时,我希望应用程序在数据库中存储访客ID,日期和字符串响应。 以下是mainActivity中对按钮的代码:

//databaseVisitor VisDB = new databaseVisitor (this);
//VisitorDatabase VDB = new VisitorDatabase();
//Defining the actions of the Allow Button

Button.OnClickListener allowListener = new Button.OnClickListener(){
    public void onClick(View arg0) {
        // TODO Auto-generated method stub

        Toast allowToast = Toast.makeText(MainActivity.this, R.string.toastYes, Toast.LENGTH_LONG);
        allowToast.show();

        //Log.d("Insert Log: ", "Inserting add log..");
        //count = VisDB.getVisitorCount();
        response = "Access Granted";
        //dt = date.getDate();

        //VisDB.addVisitor(new VisitorDatabase(count+1, dt, response));

    }   
};

2 个答案:

答案 0 :(得分:2)

最可能是因为你正在关闭光标

cursor.close()

然后对其进行操作

return cursor.getCount()

尝试这样的smthg

int count = cursor.getCount();
cursor.close();
return count;

编辑:

和VisDB一样,

...
databaseVisitor VisDB;
...
public void onCreate(Bundle savedInstanceState) {
      ...
      VisDB = new databaseVisitor (this);
      ...
}

答案 1 :(得分:1)

在给出getCount()之前关闭了光标。 试试这个:

int count = cursor.getCount();
cursor.close();
return count;
祝你好运!