Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-SQLite已创建且从未关闭_Android_Database_Sqlite - Fatal编程技术网

Android-SQLite已创建且从未关闭

Android-SQLite已创建且从未关闭,android,database,sqlite,Android,Database,Sqlite,我有个问题。我用数据库中的一个表工作,我没有问题 好了,现在我添加了另一个表,问题开始了 在我的主要活动中,我打开数据库(可写模式)以填充存储在数组中的信息。。然后我关闭它,然后我重新打开它(可读模式),并用存储在数据库中的数据填充一个表。。。然后我关闭数据库。这在我做的所有活动中都起了作用 现在我有另一个活动,它对另一个表执行相同的操作,以可写方式打开它以填充它,然后关闭。。然后以可读的方式打开,填写表格并关闭 在我这样做之后,我有一个日志,上面写着SQLite已经创建并且从未关闭。。什么?我

我有个问题。我用数据库中的一个表工作,我没有问题

好了,现在我添加了另一个表,问题开始了

在我的主要活动中,我打开数据库(可写模式)以填充存储在数组中的信息。。然后我关闭它,然后我重新打开它(可读模式),并用存储在数据库中的数据填充一个表。。。然后我关闭数据库。这在我做的所有活动中都起了作用

现在我有另一个活动,它对另一个表执行相同的操作,以可写方式打开它以填充它,然后关闭。。然后以可读的方式打开,填写表格并关闭

在我这样做之后,我有一个日志,上面写着SQLite已经创建并且从未关闭。。什么?我和往常一样做了同样的事。。以下是让我陷入困境的我的部分活动:

     UsuariosSQLiteHelper usdbh =
                new UsuariosSQLiteHelper(this, "DBIncidentes", null, 1);

            SQLiteDatabase db = usdbh.getWritableDatabase();         //Abro base de datos para escritura

            if(db != null)
            {

                 db.execSQL("DELETE from Moviles");
                 for (int i=0; i<= (vecTotal.length) -1; i++) {



                String reg = vecTotal[i].toString(); 
                String [] inc = TextUtils.split(reg, "\\^");




                String numMovil = inc[0];
                String colMovil = inc[1];
                String estado = inc[2];
                String localidad = inc[3];
                String strCantServ = inc[4];

                Integer cantServ = Integer.parseInt(strCantServ);



                try{                

                    //Insertamos los datos en la tabla Incidentes
 db.execSQL("INSERT INTO Moviles ( idInterno, numMovil, colMovil, estado, localidad, cantServ) " +
             "VALUES ("+(i+1)+", '" + numMovil +"', '" + colMovil +"' , '" + estado +"', '" + localidad +"', " +cantServ +" )");



}

catch (Exception e)

{
    e.getMessage();


}






                 }



                 db.close();


            }




            UsuariosSQLiteHelper bdLlena =
                    new UsuariosSQLiteHelper(this, "DBIncidentes", null, 1);

                SQLiteDatabase db2 = bdLlena.getReadableDatabase();



            if(db2 != null)


            {






           String query = "Select * FROM Moviles";



           Cursor d = db2.rawQuery(query,null);

            if (d.moveToFirst())

                do {


                Integer j = 1;

                    Integer idInterno = d.getInt(0);
                    String numMovil = d.getString(1);
                    String colMovil = d.getString(2);
                    String estado = d.getString(3);
                    String localidad = d.getString(4);
                    Integer cantServ = d.getInt(5);



                     TableRow tr = new TableRow(this);

                        tr.setId(idInterno);
                        tr.setOnClickListener(this);
                        tr.setLayoutParams(new LayoutParams(
                                   LayoutParams.WRAP_CONTENT,
                                   LayoutParams.WRAP_CONTENT));   


                          //------------------------------------------------- 

                        //seteo el campo Numero de Movil

                           TextView cmpNumMovil = new TextView(this);
                           cmpNumMovil.setId(200+j);

                           int colorInt = Color.parseColor(colMovil);
                           cmpNumMovil.setGravity(Gravity.CENTER);
                           cmpNumMovil.setText(numMovil);

                           cmpNumMovil.setBackgroundColor(colorInt);
                           cmpNumMovil.setTextColor(Color.BLACK);
                           cmpNumMovil.setWidth(10);
                           View v = new View(this);
                           v.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 1));
                           v.setBackgroundColor(Color.rgb(0, 0, 0));
                           tl.addView(v);
                           tr.addView(cmpNumMovil);

                         //----------------------------------------------------------------  
                         //seteo el campo entidad

                           TextView cmpEstado = new TextView(this);
                           cmpEstado.setId(300+j);
                           cmpEstado.setText(estado);
                           cmpEstado.setGravity(Gravity.CENTER);

                           cmpEstado.setTextColor(Color.BLACK); 
                           tr.addView(cmpEstado);

                           //----------------------------------------------------------------  


                           TextView cmpLoc = new TextView(this);
                           cmpLoc.setId(300+j);
                           cmpLoc.setText(localidad);
                           cmpLoc.setGravity(Gravity.CENTER);

                           cmpLoc.setTextColor(Color.BLACK); 
                           tr.addView(cmpLoc);



                        //----------------------------------------------------------------  


                           TextView cmpCantServ = new TextView(this);
                           cmpCantServ.setId(300+j);
                           cmpCantServ.setText(cantServ);
                           cmpCantServ.setGravity(Gravity.CENTER);

                           cmpCantServ.setTextColor(Color.BLACK); 
                           tr.addView(cmpCantServ);





            j++;


                 } while(d.moveToNext());



            }



            db2.close();





    }


    catch (Exception e)

    {


        e.getMessage();
    }





}
usuariossqliteheloper usdbh=
新的UsuariosSQLiteHelper(此“DbIncidents”,null,1);
SQLiteDatabase db=usdbh.getWritableDatabase()//曼陀罗基地酒店
如果(db!=null)
{
db.execSQL(“从移动文件中删除”);

对于
usuariossqliteheloper
类中的(int i=0;i),您是否真的实现了方法
close()

尝试为数据库实现重写的方法close(),并且在每次操作调用之后 close(),将关闭您的数据库

@Override
public synchronized void close() {

    if (myDataBase != null)
        myDataBase.close();

    super.close();

}

希望你们明白我的意思…

不太明白,但我认为db.close()是api的一种方法,只需关闭我的bd即可。我只在一个表中使用了它,并没有任何问题,这很少见