Android :: Android.database.StaleDataException Access Closed Cursor
May 18, 2010
I have activity A and I used managedQuery in Activity A. I have an adpater which extends from BaseAdapter. In GetView I access the mcursor to get fields.If I click a button on Activity A it goes to B, A---> B.The problem arises when I am in activity B *and it's visible(B), the error is thrown from Acitivity A.I dont understand why I get the error from Activity A. Activity B is visible now and A is in background.There was a post already on this group with similar error but there was no response.I was hoping if someone encountered this and found a solution.
View 2 Replies
Jun 8, 2010
Should I just have MyDataSetObserver catch the exception and move on? I'd like a more robust solution than that if possible. Or is there some other way I could rearrange my program so that the staleDataException doesn't occur (as often)? I believe that it is happening because I am launching the new activity in my onListItemClick.
View 1 Replies
View Related
Mar 21, 2010
I get records from the system by quering a ContentResolver. I maintain the order of the items in the database. So I want to display the items in the order taken from my database.
How do I merge these two informations?
I am looking after an alternative way now. As what I ideally want is:
Get order of contacts by a custom order held in my database (this involves joining CR with my DB cursor, and doing an order by, later seams it's not possible with CursorJoiner) but there is more, if the join is not unique I want to sort by contact's name as last measure
Which is impossible using Cursor and Joiners, because of the missing feature of order bys, also I need to return a Cursor, as I will be using the in an ExpandableList
Also this translated to TSQL it would look like
select * from contactsdata
left join category on contactsdata.catid=category.id
order by category.pos asc, contact.display_name asc
So I am looking now after an alternative. I have in mind to load in a temporary DB table all data from CR, then do the query on the temporary table where I can join tables and do order bys? How does this sound to you?
View 1 Replies
View Related
Jun 18, 2010
i'm getting a "Finalizing a Cursor that has not been deactivated or closed" error on this piece of code. The code is used to fill a list view. Since it's a non-fatal error , there is no crash and all seems to works fine..but i don't like the error. If i close the cursor at the end of this code..the listview stay's empty.if i close the cursor in onStop, i get the same error.
View 4 Replies
View Related
Jan 1, 2012
My application creates a database on the fly and also populates it. The problem is I get a "Attempt to Finalize Cursor That has not been closed" error in logcat which mainly refers to this function.
Code:
public static void populateFromDatabase(){
/* if the database is empty just throw in the question */
Cursor c = AppData.db.db.rawQuery("SELECT * FROM question", null);
if (c != null && c.getCount() == 0){
c.moveToFirst() ;
int count = 0 ;
while(!c.isAfterLast()){
[URL]
My question is I am closing the cursor in all occasions so why this error ? Also note that i call this function only once in the program and the logcat error points to this.
View 2 Replies
View Related
Aug 18, 2010
I have an minor issue when taking a photo. I have a button that invokes the camera, successfully takes a photo, and returns to my entry form. My only problem is the database leak that occurs when pressing the button to call the camera.
My code looks a little something like this.
code:..........
I run :
code:..........
In the onCreate of the Activity or Class that I am calling the camera in. I have not coded in mDbHelper.close(); anywhere not sure if i should when or where. I think i would rather just leave it open while capturing one image.
Logcat:
code:............
Everything seems to be working fine, but i would defiantly like to avoid any issues amongst the many android devices out there.
View 2 Replies
View Related
Sep 21, 2009
In the API Demo, there is example on using Simple Cursor Adapter. However, it is using the MediaS tore cursor. Is there any method so that I can use other external cursor prepare by SQL database. I don't know what should I input to the from String.
View 2 Replies
View Related
May 6, 2009
I am seeing the exception in 'adb logcat'.But I don't know if it is caused by my application or android platform.Can you please give me any idea how to troubleshoot this exception?
View 3 Replies
View Related
Jul 1, 2010
Here is my code for my db class:
package one.two;
import java.util.List;
import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import java.util.ArrayList;
public class DBAdapter extends ListActivity
{public String status = "status";
public String id = "id";
public String arrival = "arrival";
public String destination = "destination";
public String ferry = "ferry";
private static String DB_PATH = "/data/data/one.two/databases/";
private static final String DATABASE_NAME = "ferry.db";
private static final String DATABASE_TABLE = "port";
public static Context context;
public Cursor c;
public static SQLiteDatabase DbLib;
//overloaded non-null constructor
public DBAdapter(Context context) {
DbLib = context.openOrCreateDatabase(DATABASE_NAME,
SQLiteDatabase.CREATE_IF_NECESSARY,null);
System.out.println("OpenOrCreateDB Done");
} public class DatabaseHelper extends SQLiteOpenHelper {
Context context;
DatabaseHelper(Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
this.context = context;
}//end constructor DatabaseHelper
// ---closes the database---
public void close() {
DBHelper.close();
}//end close()
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion){
}//end onUpgrade()
@Override
public void onCreate(SQLiteDatabase db){
}//end onCreate()
}// end class DatabaseHelper
private static DatabaseHelper DBHelper;
private static final int DATABASE_VERSION = 1;
public static ArrayList<String> getAllTitles(){
ArrayList<String> port = new ArrayList<String>();
Cursor c=null;
c = DbLib.query("port"
new String[] { "status", "id", "arrival",
"destination", "ferry" }, null, null,
null, null, null);
try {
if (c!=null) { // start - when there is at least 1 record
System.out.println("Cursor is NOT NULL");
int i =0;
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext())
{// Debug Stm
System.out.println("Record No. "+i);
System.out.println(c.getString(0));
System.out.println(c.getString(1));
System.out.println(c.getString(2));
System.out.println(c.getString(3));
System.out.println(c.getString(4));
// Assign database cursor.records to arraylist
port.add(i,c.getString(0));
port.add(i,c.getString(1));
port.add(i,c.getString(2));
port.add(i,c.getString(3));
port.add(i,c.getString(4));
i = i + 1;
} } // end - where there is at least 1 record
} finally {
if (c!=null) {
c.close();
} } return port;
}//end getAllTitles()
public void open() {
//Open the database
String myPath = DB_PATH + DATABASE_NAME;
DbLib = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
} }//end class DBAdapter
My Arrival class
package one.two;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class Arrival extends ListActivity
{ private ListView listView;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState)
{ ArrayList<String> retList = new ArrayList<String>();
System.out.println("Start onCreate Function");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println("In onCreate Function");
System.out.println("In of GetData");
DBAdapter db = new DBAdapter(this);
System.out.println("DB Open");
db.open();
System.out.println("DB Opened");
retList = getData();
System.out.println("Out of GetData");
// force count no. of records in table
// dump to check index
int cnt = 2;
int i=0;
for (i = 0; i<cnt; i++)
System.out.println(retList.toString());
listView = (ListView) findViewById(android.R.id.list);
SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.id.list, null, null, null);
this.setListAdapter(mAdapter);
// db.close();
} @SuppressWarnings("static-access")
public static ArrayList<String> getData()
{ ArrayList<String> items = DBAdapter.getAllTitles();
// titles ???? redundant
//ArrayList<String> titles = new ArrayList<String>(items);
System.out.println("Return a LIST titles");
return items;
} }
View 1 Replies
View Related
Jun 29, 2009
I been using custom adapters based on the BaseAdapter and I usually populate my data at the getView() funtion.
Now I'm trying to write my custom adapter for my database cursor which now will be based on a CursorAdapter.
I'm getting confused where I should do the populating work? Along with how do I implement my inflating and populating "smart/efficient code based on RomainGuy presentation."
View 8 Replies
View Related
Aug 25, 2009
How do you populate a spinner from a cursor accessing an SQLite database?
View 2 Replies
View Related
Jun 30, 2009
I am having some trouble working with the SQLite database. I am able to create the database, add to it, and delete from it with no problem by following the Notepad examples, but I am trying to avoid duplicates and therefore want to check to see if an entry exists already.
Below is the code I have for testing to see if a game exists. I get the correct Log message of "No Games" when there are no games, as well as the correct value for column from getColumnIndex which is proven to me by the log printout telling me that column = 1.
The error message that I receive if I don't catch the exception says "Caused by android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
Where is Index -1 being requested if my call to getColumnIndex is returning 1? Code...
View 3 Replies
View Related
Jul 1, 2010
I have a ListActivity that uses a CursorAdapter to fill the rows in the view. I wrote a database helper class that gives me back results for common queries I make for my app, and it uses an SQLiteOpenHelper implementation I wrote to open the database. I use the open helper to open the database and get a cursor to pass to my CursorAdapter.
Here's a code snippet:
CODE:...................
The problem I'm having, that I didn't have before I implemented the open helper (before I just opened the database directly without a helper), is when I click on an item, which takes me to another activity, and then go back to this activity. When it initializes everything is fine, and my list is populated fine, but when I go back from the activity that follows, the list is empty and in the LogCat I see "Invalid statement in fillWindow()".
It appears from a few post I've seen that the reason is, when I requery the cursor, the database is closed. But I'm not closing it! I'm scratching my head on this one.
View 2 Replies
View Related
Jan 10, 2010
Maybe I'm going about this the wrong way, but if so, please correct me. Here is the situation: I have a query which returns URI strings for ringtones stored in a database.
I am trying to add a "column" to this cursor with the ringer "Title" (since this can change outside my program). I can successfully user RingtoneManager to get the title, but I cannot figure out how to add this "column" to the cursor data for later use. Here is what I have so far: Code...
View 2 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 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
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
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