Skip to content Skip to sidebar Skip to footer

Android Sqlitedb Doesn't Finish Adding Values

My SQLiteDatabase is giving me some trouble. When the user closes the app, in onPause() an AsyncTask begins to save the data. I don't know if this is the best way to do it, but the

Solution 1:

I fixed this by creating an IntentService with an AsyncTask inside of it, and calling it within onPause. It works error-free now. Here's the code in onPause:

    Intent saveIntent = newIntent(this, SaveService.class);
    startService(saveIntent); 

And here's my SaveService class:

publicclassSaveServiceextendsIntentService
{
    private ArrayList<Ingredient> ingredientsArray;
    private ArrayList<Unit> unitsArray;
    private DatabaseHelper dbHelper;

    publicSaveService(String name) 
    {
        super(name);
    }

    publicSaveService() 
    {
        super("SaveService");
    }

    @OverrideprotectedvoidonHandleIntent(Intent intent) 
    {
        //save data to database
        dbHelper = newDatabaseHelper(getApplicationContext());
        ingredientsArray = QuickBakeConverterPro.ingredients;
        unitsArray = QuickBakeConverterPro.units;

        newSaveAllTask().execute();
    }

    privateclassSaveAllTaskextendsAsyncTask<Void, Void, Void>
    {
        @Overrideprotected Void doInBackground(Void... args) 
        {
            //open databasetry 
            {
                dbHelper.openDatabase();
            }catch(SQLException sqle)
            {    
                throw sqle;  
            }

            dbHelper.deleteAll();

            //add all ingredients & unitsfor (inti=0; i < ingredientsArray.size(); i++)
                dbHelper.addIngredient(ingredientsArray.get(i));
            for (inti=0; i < unitsArray.size(); i++)
                dbHelper.addUnit(unitsArray.get(i));

            dbHelper.close();

            returnnull;
        }
    }//SaveAllTask
}//class SaveService

Post a Comment for "Android Sqlitedb Doesn't Finish Adding Values"