Android :: Database Access / How To Close It
Aug 2, 2010
I am creating an android app that is basically a listing of information on Mushrooms. I get this information from an sqlite database. I have a global singleton with a services class inside it in which I use to access my db. Almost every activity accesses the db. Is it better to leave my db open all the time or open and close it as I need the data? If the best practice is to leave it open all the time, where do I need to make sure to close it and what is the worst case scenario if I left it open when the activity was destroyed?
View 3 Replies
Jul 22, 2010
Is it really necessary to close an SQLite database that your activity has opened (database is in local memory or on SD card)? I would think it would be good practice, but I noticed that the Android samples such as the Notepad tutorial and SearchableDictionary sample do not do this. I've also seen sample code where the database is consistently opened, read from, and closed, but that would seem to add unnecessary overhead.
View 5 Replies
View Related
Jun 23, 2010
In my app, I'm supporting the backup and restoration of the Sqlite db file. I need to close and re-open my database connection after the restore. How can I do this?
View 2 Replies
View Related
Jun 14, 2010
I want to know when a close method of a sqlite database should be called in a life cycle, since the NotePad sample in the sdk (http://developer.android.com/resources/tutorials/notepad/index.html) doesn't call NotesDbAdapter.close(), it implements that method though.
My application accesses the db not so frequently, but some, it depends on user requests. I think I should open the db at the onCreate, and close it at the onDestroy. Is that a good practice?
View 1 Replies
View Related
Feb 11, 2010
My application has a ContentProvider that handles the direct SQLiteDatabase access. The activities that query the ContentProvider are returned a Cursor. Even though the activities close the cursor, the application is throwing an IllegalStateException when the ContentProvider exits (or possibly when garbage collection is done) because the activities are not closing the SQLiteDatabase.
The Activity has no direct way to close database. The Cursor returned is an android.content.ContentResolver$CursorWrapperInner type. This type encapsulates the actual SQLiteCursor returned from the ContentProvider.
If the returned Cursor could be cast into its original SQLiteCursor, the SQLiteDatabase used by the Cursor would be accessible and could be closed by the Activity. Unfortunately, the CursorWrapperInner cannot be cast.
Sequence of Events:
1) Activity uses ContentResolver to run a query through a ContentProvider.
2) Content Provider receives the query request through a call to its query() method.
3) Content Provider opens a SQLiteDatabase, performs the query and obtains a SQLiteCursor.
4) Content Provider exits the query() method, returning the SQLiteCursor.
5) Activity receives a CursorWrapperInner object from the ContentResolver.query() call.
6) Activity uses the cursor and invokes the Cursor.close() method.At some later time, either the ContentProvider is deleted or garbage collection occurs. (I am not sure which is the trigger to the Exception)
7) An IllegalStateException is thrown because a SQLiteDatabase remains open and is a leak.
* Closing the SQLiteDatabase in the ContentProvider invalidates the Cursor before the Activity has a chance to use.
* Invoking close() on the Cursor, which is suppose to release all resources held by the Cursor, is not closing the SQLiteDatabase.
* The CursorWrapperInner class prevents the Activity from direct access to the SQLiteCursor which could be used to close the database.
What am I missing?The following is a snippet from the LogCat:
Code:
D/dalvikvm( 722): GC freed 3058 objects / 180664 bytes in 143ms
E/Database( 722): Leak found
E/Database( 722): java.lang.IllegalStateException: /data/data/com.lebruns.android.BookManager/databases/BMMasterCatalog.db SQLiteDatabase created and never closed
E/Database( 722): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1580)
E/Database( 722): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:638)
[code]....
View 3 Replies
View Related
Dec 7, 2009
I would like to ask you smart people if anyone has seen any documentation regarding web access to a database from within an Android application. I would like to create a (FREE) application where the users can share information (rants/complains) around the globe. Each user will be able to see a little globe in his phone with locations of other users and some specific information about them.
Architecturally, I am thinking "database in my GoDaddy host, exposing a web service", and the web service accessed from the Android application. But I see no documentation about accessing web services. I can also go XML, maybe, but I am not seeing what mechanisms exist in the Android for over-the-web XML access.
I have a feeling I am mis-understanding something big in the picture. Can someone point me to docs, or knows something about this topic? (the iPhone has a Lighter app where you can see people lighting around the globe. Mine is similar, but people would not be lighting, instead they will be "complaining/ranting").
View 1 Replies
View Related
May 26, 2010
I am working on a Android app and I have a dilemma. I have a list of Objects. I have to update each of these objects with a database. I have 2 methods:
Method 1:I can loop through the Objects. For each object I can connect to the server, update it, and then move on to the next Object, and so forth.
Method 2:I can store the Objects in a list, send the whole list to the server, update it on the server side, then return a list of updated objects.
My questions are:
Which method is faster?
Which method is easier on the phone's battery?
View 2 Replies
View Related
Jul 14, 2010
I understand that to access a SQL database from Android I need to create a web service that will run on the SQL server and will process requests from the Android application, what I need to know is how to create this web service and how to access it from Android.
View 1 Replies
View Related
Jul 27, 2010
I'm using an sqlite database in my app.
I have this dbhelper class in a services class like so.
CODE:............
In my activity classes I access and keep this application as a local variable like so:
CODE:..............
And my service call looks like this:
CODE:.............
I've added these overrides in to try to get rid of my memory leaks.
CODE:.............
But I can't get my memory leaks to stop.
How to rid myself of these memory leaks? These leaks are of the type:
CODE:..................
View 2 Replies
View Related
Jun 18, 2010
I am new to android platform. I am testing one android phone application. I want to see the database entries for that.
View 2 Replies
View Related
Feb 1, 2012
I have to make android app that received files from mobiles and save it on database in pc.
How to create database on pc that i can access it by android app?which technique is the best for this Bluetooth or Wifi or...between the mobiles?
which technique is the best for this Bluetooth or Wifi or...between mobile and pc?
View 1 Replies
View Related
Aug 22, 2012
I'm trying to connect my app to a MySQL database to retrieve data. Obviously I have to do this in a new thread hence why I chose AsyncTask, something I'm new to.
I have included Toasts to tell me if there are problems when trying to carry out any part of it. However these toasts are not showing on the UI thread. I tested this out by turning off the server my SQL database is on so that it could trip the first toast. It didn't show it though and instead it gave me a force close error. When my server is running I have no issues and although I haven't coded the bit to retrieve data yet the code below does connect to my database and at least lets me view the page "CurrentSeasonDrivers".
Here is my code and the logcat showing the errors below that:
package com.android.history;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
[code]....
All I want it to do is show a toast if the application cannot connect to the server instead of force closing.
View 4 Replies
View Related
Jul 22, 2010
I have a Windows web server already set up with a website (unlimited application pools) and I want to be able to access a database on that server via the Android app I'm developing. How can I do this? Can someone point me to a tutorial or give code example of how this cross-platform (Android/Java to ASP.NET/C#) communication can be done? (I'm trying to create a leader board or global scoreboard for my Android game on my server.)
View 3 Replies
View Related
Jul 22, 2010
I have four tabs (reports, review reports, map and settings). I have an sqlite database populated with report information. I wish to have the database accessible throughout the application. The reports tab successfully adds data to the database however using the same methodology crashes the application. The Android debugger points to the line where the database is called again.
In the reports tab the following code is used to launch the database...
CODE:.................
In the onCreate() method of the Review Tab - Where I wish to review reports - I try to access to the database through the call calling the return report method
this.reportDatabase = new ReportDatabase(this);
However this fails to work. In the android debugger highlights that the problem belongs with the context being provided to it. I realise that the report database has already been accessed by the report tab and wonder if this is causing the issue. I am new to programming android, the application is designed to report on flamingos in Africa, any help would be greatly appreciated!
Following the suggestion of Seva Alekseyev I have adapted as follows...
I have adapted my ReportDatabase as...
CODE:..............
using...
reportDatabase = ReportDatabase.open(this);
As the call in both the report and review tab. Unfortunately this doesn't seem to work, the debugger stops on the same method. The full ReportDatabase.java file is here...
CODE:...........
This method returns a double array and probably shouldn't be this hacky...
CODE:............
With the error stack being...
CODE:.................
View 1 Replies
View Related
Dec 12, 2009
I have a problem when using database in broadcastReceiver.
I can't open the database created in the activity. e.g: malwareDB = new PackageDB(this);
The eclipse give me the error that "PackageDB(this)" is undefined.
It seems that the BroadcastReceiver doesn't support the database?
Do have have to access the data base in the "service"?
Here is the definition of "PackageDB":
CODE:..................
View 2 Replies
View Related
Jan 16, 2010
I'd like to access an Internet database from my app to edit it and read it. Any link I should read or any advise?
View 1 Replies
View Related
Jul 6, 2010
The log is as following:
CODE:..................
View 2 Replies
View Related
Sep 6, 2010
Is there any way to access the a database server directly in Android? If not, why? Also, are there any external tools for this?
View 1 Replies
View Related
Feb 11, 2010
How to access my web application database in android emulator, i want list out my database values. These are in my web application. database name employees and table: employee_data. i want to get employee_data data on android emulator.
View 1 Replies
View Related
Jan 31, 2010
I'm searching information about how i can access a specific database that to not belong to me, and that is store in /data/data/com.... directory is it possible without root access? it it possible with root access, and how?
View 3 Replies
View Related
Sep 23, 2009
I am experiencing a problem where when the android device wake up from sleep, the Activity would take forever to get redrawn(and have to terminate it most of the time). I am not sure why, but when I comment out the code below where it retrieves an object from the database based on id stored in the bundle, the problem goes away.
Not sure why the db transaction is causing an issue.
secondly, is it better to store the object in bundle instead of storing its id and retrieving it from db in onCreate?
CODE:...............
View 2 Replies
View Related
Aug 13, 2010
Is it possible to get path of database file in android at path : "/data/system/accounts.db"
In my app i want to use this database, but not getting its path. if i do hardcoding and remove the file i'm able to do it. But i want to access it as database so that i can drop the table.
code i tried:
CODE:.................
View 1 Replies
View Related
Aug 30, 2010
I have a general Android design question around data access. I have a number of activities in my application that need to access a SQLite database. In order to wrap up all data access logic in one place I have created a DatbaseHandler class that takes care of all data access logic. This class takes care of building up where clauses, calling the database and interrogating the resulting cursor to retrieve the query results and return them to the caller. The purpose of this class is to wrap all data access code in one place so that it can be easily managed and maintained as opposed to having data access logic scattered across all activities. Each activity that needs access to the database creates an instance of this DatabaseHandler class and passes it a reference of android.content.Context. The DatabaseHandler class then uses this Context object to call an underlying content provider as follows context_i.getContentResolver().query(...).
My data access logic (cursor handling logic to be specific) is not in the activity and so I cannot manage the cursors life cycle, therefore there is likely to be memory leaks.
My questions are as follows -
How can I (if its even possible) manage the cursors life cycle from outside an Activity? Should each activity even be creating an instance of this data handler class and passing an instance of Context to it? Perhaps my design approach is wrong and I should expose these data access functions as static methods that take an instance of the calling activity as a parameter. That way I could perform managed queries and let the activity take care of managing the cursors life cycle?
View 1 Replies
View Related
Oct 18, 2010
I use a sqlite database in my project. The stored data in it must not be available for the user to edit. As I've read here I saw that if you have root access you can alter sqlite database. The only solution would be to encrypt database content, but this would be time consuming for device. Any solution to prevent access to database ?
View 1 Replies
View Related
Oct 30, 2010
I'm running a .net aspx application. I'll need my android app to access and modify/insert information into the ms sql database. is there any api ?
View 2 Replies
View Related
Jul 18, 2010
I am quite familiar with web programming (HTML, PHP, MySQL) and semi-familiar with Android Java programming, and would like to begin a project that combines the two together. Can someone point me into the right direction for how I would access/manipulate a web-based MySQL database from an android app?
View 1 Replies
View Related
Sep 28, 2010
I am new to the development, i have created a database and i have inserted values using eclipse code and i have successes on that But i want to see where this database exists, i have checked on tools directory from command prompt and if i query the table using select , it is saying that no table exists, Can anyone please tell me that how to access database from command line?
View 3 Replies
View Related
May 11, 2010
I am having trouble accessing the database while I am developing on the phone. Whenever I execute
cd /data/data/com.mycompck/databases
then if I try to run ls I get opendir failed, Permission denied
Or whenever I type in:
sqlite3 I get sqlite3: permission denied
What I am doing wrong?
Are there some applications that can help me getting a human view of content resolvers values and/or SQLite databases?
View 2 Replies
View Related
Mar 18, 2010
I'm having a problem in accessing a database on remote server from my android application. In some blogs i found that by using Webservices we can do it. but i dont know what are webservices? Can any one help me how do i do that?
View 3 Replies
View Related
Dec 23, 2009
So far we have developed apps in android that create database on runtime. We like to know how can we access a pre-built or existing database/sqlite file in our android app?
View 1 Replies
View Related